Russian Qt Forum
Сентябрь 30, 2024, 14:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перемещение виджета. Смена предка.  (Прочитано 5202 раз)
Danila_Bagrofff
Гость
« : Апрель 16, 2009, 10:05 »

есть 3 виджета:
Код:
QTableWidget *tbl = new QTableWidget(10,10,this);
QFrame *frm = new QFrame(this);
QWidget *wdg = new QWidget(frm);

QHBoxLayout *hbl = new QHBoxLayout(frame);
hbl->insertWidget(wdg);

//затем в процессе программы
hbl->removeWidget(wdg);
wdg->setParent(tbl);
tbl->setCellWidget(0,0, wdg);

в процессе программы wdg должен перемещаться между двумя виджетами. Соответственно менять родителя. Лэаут сам тоже устанавливает виджету родителя. То есть у wgt становится родителем frm после команды insertWidget().
есть команда setParent(). Но при смене родителя она ругается.
Если мы  перемещаем wdg возникает ошибка:
Цитировать
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 25 (X_SendEvent)
  Resourse id: .....

Как правильно перемещать виджет между другими?
« Последнее редактирование: Апрель 16, 2009, 10:39 от Danila_Bagrofff » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Апрель 16, 2009, 10:57 »

глянь примерчик, может что-то для тебя прояснится
Записан

Юра.
Danila_Bagrofff
Гость
« Ответ #2 : Апрель 16, 2009, 11:58 »

в том то и дело, что setParent также вызывает такую ошибку.

В чем может быть проблема?
Записан
igor_bogomolov
Гость
« Ответ #3 : Апрель 16, 2009, 14:46 »

http://www.forum.crossplatform.ru/index.php?s=&showtopic=2601&view=findpost&p=18622
« Последнее редактирование: Апрель 17, 2009, 00:10 от igor_bogomolov » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Апрель 16, 2009, 15:05 »

2 Danila_Bagrofff,
сдаётся мне, что смена родителя здесь - какой-то побочный эффект. А истинная цель видимо в "Перетаскивании" ("Drag-N-Drop") так или нет?
Если так, то подход принципиально другой.
Записан

Юра.
Danila_Bagrofff
Гость
« Ответ #5 : Апрель 16, 2009, 15:46 »

да, виджет  обладает драгом. таблица обладает дропом.
затем я хочу именно нужный мне виджет переместить. просто установив его в ячейку. драг\дроп напрямую для перемещения здесь не используется.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.066 секунд. Запросов: 23.