Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: cupuyc. от Декабрь 10, 2014, 10:21



Название: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: cupuyc. от Декабрь 10, 2014, 10:21
Доброго времени суток.
Подскажите, как сделать, что бы главное окошко программы всегда было ниже его дочерних.
Qt::WindowStaysOnBottomHint - не прокатывает т.к. он оставляет главное окно позади вообще всех окон открытых на рабочем столе, а мне нужно только относительно дочерних.


Название: Re: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: Hrundel от Декабрь 10, 2014, 12:14
Dialogs can be modal, in which case the user is required to provide necessary information before work in the main window can continue, or modeless. Modeless dialogs do not prevent the user from interacting with any of the other windows in the application.

http://qt-project.org/doc/qt-4.8/dialogs.html


Название: Re: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: __Heaven__ от Декабрь 10, 2014, 12:21
Возможно, вам нужен QDockWidget


Название: Re: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: cupuyc. от Декабрь 10, 2014, 14:57
Dialogs can be modal, in which case the user is required to provide necessary information before work in the main window can continue, or modeless. Modeless dialogs do not prevent the user from interacting with any of the other windows in the application.

http://qt-project.org/doc/qt-4.8/dialogs.html

Мне не нужны модальные диалоги. Они должны работать параллельно. Мне нужно переключение между порожденными и основным окном, но так что бы порожденные всегда были сверху и накладывались каскадом друг на друга при создании, а основное всегда за ними.


Название: Re: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: Hellraiser от Декабрь 10, 2014, 15:31
Очень похоже на http://qt-project.org/doc/qt-5/qmdiarea.html (http://qt-project.org/doc/qt-5/qmdiarea.html) и http://qt-project.org/doc/qt-5/qmdisubwindow.html (http://qt-project.org/doc/qt-5/qmdisubwindow.html)


Название: Re: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: Hrundel от Декабрь 10, 2014, 15:36
Ну, тогда конечно все просто - нужно правильный флаг установить в setWindowFlags()

Заходишь сюда (http://"http://qt-project.org/doc/qt-5/qt.html#WindowFlags-typedef") и выбираешь любой флаг, какой нужно.  ;)

К примеру:

Код
C++ (Qt)
setWindowFlags(Qt::WindowStaysOnTopHint);


Название: Re: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: gil9red от Декабрь 10, 2014, 16:05
Ну, тогда конечно все просто - нужно правильный флаг установить в setWindowFlags()

Заходишь сюда (http://"http://qt-project.org/doc/qt-5/qt.html#WindowFlags-typedef") и выбираешь любой флаг, какой нужно.  ;)

К примеру:

Код
C++ (Qt)
setWindowFlags(Qt::WindowStaysOnTopHint);

Этот флаг выставляет на передний план относительно всех окон ОС, а автор говорил, что только относительно дочерних к главному нужно фиксировать порядок


Название: Re: MainWindow всегда на заднем фоне относительно дочерних. Как?
Отправлено: cupuyc. от Декабрь 10, 2014, 16:10
похоже на то, что дочерним окнам просто не нужно присваивать никаких флагов при создании и поведение становится такое как мне нужно.