Название: Управление окнами Отправлено: like-nix от Февраль 11, 2011, 19:38 Подскажите пожалуйста какие компоненты использовать.
Допустим у нас есть главное окно, нужно сделать чтобы например по нажатию на кнопку создавалось еще одно окно, но чтобы оно не блокировало главное окно. Хочу получить поведение похожее на то когда в любом web браузере нажимаем new window, но в тоже время, когда закрываем главное окно остальные окна тоже должны закрываться. Название: Re: Управление окнами Отправлено: like-nix от Февраль 11, 2011, 19:41 MDIArea не подходит наверное, потому как окна там только в пределах ареа =), а мне нужно чтобы окна были независимые чтобы одно можно было бы свернуть в трей а остальные остались на своих местах.
Название: Re: Управление окнами Отправлено: like-nix от Февраль 11, 2011, 19:44 Конечно заказчику хочется по возможности чтобы эти окна как например в гугл хром могли быть получены из табов и при желании обратно приклеены как табы к какому нибудь окну этой программы, но это уже какбы фичи, которые хорошое если будут т.е. не обязательные.
Название: Re: Управление окнами Отправлено: santaclaus от Февраль 11, 2011, 22:19 Создай свой класс унаследованный от QWidget, сделай форму какую хочешь, потом при нажатии кнопочке в главной форме "Новое окошко" делай примерно так:
Код: MyForm *mf = new MyForm();// создаешь новую форму Название: Re: Управление окнами Отправлено: like-nix от Февраль 11, 2011, 22:20 Сделал лист окон в главном окне и при закрытии главного окна окна из этого листа закрываю.
Название: Re: Управление окнами Отправлено: like-nix от Февраль 11, 2011, 22:24 santaclaus тоже вариант =)
Название: Re: Управление окнами Отправлено: like-nix от Февраль 12, 2011, 17:47 Подскажите можно ли DockWidget создать как отдельное окно не привязанное к главному окну?
Название: Re: Управление окнами Отправлено: kdm от Февраль 12, 2011, 21:40 Я не пробовал, но что-то подсказывает, что можно при перетаскивании зависимого окна смотреть, если оно находится в определенной области, то просто зависимое окно прятать и добавлять виджет зависимого окна в QTabWidget.
То есть примерно так: если позиция зависимого окна изменяется, то смотреть если его левая часть его заголовка рядом с кнопками (которые означают закладки) QTabWidget, то зависимоеокно.hide, tabwidget.addwidget(зависимоеокно), ну и что-то такое. И наоборот смотреть если пользователь драгает закладку, то отделять ее из tabwidget и зависимоеокно.show(). Все это не выполняя уничтожение виджета зависимого окна. Сам не пробовал, просто прочитал и такая идея пришла. Не пинайте если бред. :-\ |