Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать диалоговую форму поверх всех окон в Виндосе
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
sibmail
Как сделать диалоговую форму поверх всех окон в Виндосе

Цитата(sibmail @ 9.4.2009, 9:32) *
Как сделать диалоговую форму поверх всех окон в Виндосе


Все! Сделал! Qt::WindowStaysOnTopHint

Client_Dialog :: Client_Dialog (QWidget *parent) : QDialog(parent,Qt::WindowStaysOnTopHint)
....
KFX
Цитата(sibmail @ 9.4.2009, 9:44) *
Как сделать диалоговую форму поверх всех окон в Виндосе

Цитата(sibmail @ 9.4.2009, 9:32) *
Как сделать диалоговую форму поверх всех окон в Виндосе


Все! Сделал! Qt::WindowStaysOnTopHint

Client_Dialog :: Client_Dialog (QWidget *parent) : QDialog(parent,Qt::WindowStaysOnTopHint)
....


А как во время работы программы изменить этот флаг? например по нажатию на кнопку. Проблема в том, что если назначить этот флаг в setWindoWFlag, то окно пропадает и надо сделать show(); что не выглядит красиво особенно для полноэкранных приложений (видно, как окно скрывается и показывается). Можно как-то обойти это?
Litkevich Yuriy
надо учитывать и другие флажки, примерно так:
widget->setWindowState(widget->windowState() ^ Qt::WindowStaysOnTopHint)

здесь операция "исключающего ИЛИ" инвертирует состояние флага Qt::WindowStaysOnTopHint, а остальные флажки остаются неизменными.
Алексей1153
да, с утреца нашёл как сделать поверх ) Видать, я уже сильно засыпАл вчера

у меня это теперь выглядит так
//без фрейма + всегда наверху + без кнопки на тулбаре
setWindowFlags(windowType()|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint|Qt::Tool);




упс, не туда запостил ) Ну да ладно, пусть тут валяется
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.