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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отсоединяющиеся Tab'ы в QTabWidget  (Прочитано 7337 раз)
Chuzhik
Гость
« : Июнь 17, 2013, 12:29 »

Столкнулся с проблемой, которую не могу решить уже несколько дней.
Возможно просто не хватает фантазии.

Имеется некоторый GUI. В нём на QTabWidget динамически создаются вкладки некоторых модулей, появилась необходимость сделать эти странички отсоединяемыми, аля QDockWidget, но без существенных изменений внешнего вида (пользователей жалко).

То есть это, по сути, должно выглядить как "гугл хром". вкладку можно взять и драгэндропнуть в свободную область экрана.

есть хоть что-то штатное в Qt4 для этого?

пока даже элементарно не могу найти соответствующих сигналов-слотов...

хотелось бы решить задачу "малой кровью", не рубить уже устоявшуюся архитектуру.

Помогите советом, пожалуйста))
Записан
Странник
Гость
« Ответ #1 : Июнь 17, 2013, 14:10 »

если я правильно понял вашу задачу, вам необходимо обрабатывать дроп на "свободную область экрана". насколько я знаю, средствами Qt это не решается.
Записан
Bepec
Гость
« Ответ #2 : Июнь 17, 2013, 14:17 »

Как не решается? До тех пор, пока он не дропнул, события приходят Улыбающийся

Просто нужно создать виджет одновременно с удалением таба из tabWidget и перемещать вслед за мышкой.
Записан
Chuzhik
Гость
« Ответ #3 : Июнь 17, 2013, 14:20 »

если я правильно понял вашу задачу, вам необходимо обрабатывать дроп на "свободную область экрана". насколько я знаю, средствами Qt это не решается.

Да, Вы меня правильно поняли. Я так и думал, спасибо. Сейчас унаследывал от QTabWidget и от QTabBar два своих класса, пытаюсь разобраться. Невозможного нет, просто я не могу понять какой алгоритм должен быть реализован для отсоединения вкладки в отдельное окно, как опытный разработчик, поправьте меня:

По двойному щелчку мыши по вкладке, основной виджет долженсоздать окно (док, например) и передать этому окну указатель на виджет, установленный в выбраной вкладке, а вкладку нужно спрятать. Например.

Это только что пришло в голову и пока очень сумбурно, как Вы думаете, это быдло-путь? или это имеет право на жизнь?
Записан
Chuzhik
Гость
« Ответ #4 : Июнь 17, 2013, 14:21 »

Как не решается? До тех пор, пока он не дропнул, события приходят Улыбающийся

Просто нужно создать виджет одновременно с удалением таба из tabWidget и перемещать вслед за мышкой.

как Вы меня опередили) А можно ли при этом сохранить обращения к перемещаемому виджету как ко вкладке?

по айди вкладки в QTabWidget?
Записан
Bepec
Гость
« Ответ #5 : Июнь 17, 2013, 14:28 »

Не получится. Или вкладка, или виджет. Да и зачем вам такое "поведение"?

Алгоритм -
1) действие пользователя (перетаскивание)
2) создание нового tabWidget.
3) добавление в tabWidget переносимой вкладки.
4) перемещение за курсором мыши (пока пользун не отожмёт клавишу)
5) анализ дропа, если за пределы родного окна, то оставляем всё как есть, если на окне, то переносим вкладку обратно, tabWidget новый удаляем.
Записан
Chuzhik
Гость
« Ответ #6 : Июнь 17, 2013, 14:37 »

Да и зачем вам такое "поведение"?


Очень просто, природная лень) просто взаимодействие страниц (расположенных на вкладках), так уж исторически сложилось, завязанно на айди табов. но да. я уже понял, что придётся менять.

Спасибо) я примерно понял. Буду пробовать)
Записан
Bepec
Гость
« Ответ #7 : Июнь 20, 2013, 09:41 »

Вы можете поведение переписать, основываясь на айди табов, которые будут сохраняться в мапе. Чуть сложнее, но зато никаких особых проблем не будет.
Записан
YvenTitan
Самовар
**
Offline Offline

Сообщений: 174


Просмотр профиля
« Ответ #8 : Февраль 08, 2017, 14:24 »

За 4 года появилось в QT что-то штатное?
Записан
kai666_73
Крякер
****
Offline Offline

Сообщений: 319


Просмотр профиля
« Ответ #9 : Февраль 08, 2017, 19:28 »

Ну если только вместо tabwidget-а изначально задействовать dockwidget-ы (по штуке на каждую вкладку таба)...
Вроде, все что нужно есть... штатно )
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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