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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: MainWindow всегда на заднем фоне относительно дочерних. Как?  (Прочитано 4838 раз)
cupuyc.
Гость
« : Декабрь 10, 2014, 10:21 »

Доброго времени суток.
Подскажите, как сделать, что бы главное окошко программы всегда было ниже его дочерних.
Qt::WindowStaysOnBottomHint - не прокатывает т.к. он оставляет главное окно позади вообще всех окон открытых на рабочем столе, а мне нужно только относительно дочерних.
Записан
Hrundel
Гость
« Ответ #1 : Декабрь 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
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #2 : Декабрь 10, 2014, 12:21 »

Возможно, вам нужен QDockWidget
Записан
cupuyc.
Гость
« Ответ #3 : Декабрь 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

Мне не нужны модальные диалоги. Они должны работать параллельно. Мне нужно переключение между порожденными и основным окном, но так что бы порожденные всегда были сверху и накладывались каскадом друг на друга при создании, а основное всегда за ними.
« Последнее редактирование: Декабрь 10, 2014, 15:01 от cupuyc. » Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #4 : Декабрь 10, 2014, 15:31 »

Очень похоже на http://qt-project.org/doc/qt-5/qmdiarea.html и http://qt-project.org/doc/qt-5/qmdisubwindow.html
Записан
Hrundel
Гость
« Ответ #5 : Декабрь 10, 2014, 15:36 »

Ну, тогда конечно все просто - нужно правильный флаг установить в setWindowFlags()

Заходишь сюда и выбираешь любой флаг, какой нужно.  Подмигивающий

К примеру:

Код
C++ (Qt)
setWindowFlags(Qt::WindowStaysOnTopHint);
« Последнее редактирование: Декабрь 10, 2014, 15:59 от Hrundel » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #6 : Декабрь 10, 2014, 16:05 »

Ну, тогда конечно все просто - нужно правильный флаг установить в setWindowFlags()

Заходишь сюда и выбираешь любой флаг, какой нужно.  Подмигивающий

К примеру:

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

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

cupuyc.
Гость
« Ответ #7 : Декабрь 10, 2014, 16:10 »

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


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