Автор: sibmail 9.4.2009, 9:44
Как сделать диалоговую форму поверх всех окон в Виндосе
Цитата(sibmail @ 9.4.2009, 9:32)
Как сделать диалоговую форму поверх всех окон в Виндосе
Все! Сделал! Qt::WindowStaysOnTopHint
Client_Dialog :: Client_Dialog (QWidget *parent) : QDialog(parent,Qt::WindowStaysOnTopHint)
....
Автор: KFX 20.5.2010, 21:36
Цитата(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 21.5.2010, 4:44
надо учитывать и другие флажки, примерно так:
widget->setWindowState(widget->windowState() ^ Qt::WindowStaysOnTopHint)
здесь операция "исключающего ИЛИ" инвертирует состояние флага Qt::WindowStaysOnTopHint, а остальные флажки остаются неизменными.
Автор: Алексей1153 3.9.2010, 7:57
да, с утреца нашёл как сделать поверх ) Видать, я уже сильно засыпАл вчера
у меня это теперь выглядит так
//без фрейма + всегда наверху + без кнопки на тулбаре
setWindowFlags(windowType()|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint|Qt::Tool);
упс, не туда запостил ) Ну да ладно, пусть тут валяется