Qt правильный способ показать / показать / поднять окно - PullRequest
19 голосов
/ 19 октября 2011

Довольно часто я обнаруживаю, что мне нужно показать и вывести окно на передний план.Например, когда пользователь пытается перезагрузить тот же документ, я просто поднимаю старый.Для этого у меня есть такой код:

widget->raise();
widget->activateWindow();
widget->showNormal();

Мне начинает казаться, что мне не хватает функции ярлыка.Конечно, этот тип поведения довольно распространен.Есть ли какая-либо предпочтительная функция, которая будет выполнять все вышеперечисленное и / или просто делать правильные вещи в каждой целевой ОС?


Примечание: я только что заметил дефект, поэтому специальная функция дажеважнее сейчас.Если окно свернуто, activateWindow не работает.Это происходит, даже если вы сначала измените порядок на showNormal.

Ответы [ 2 ]

12 голосов
/ 19 октября 2011

это рабочий «ярлык»:

widget->setWindowState(Qt::WindowActive) ;

Вы можете связать его с последним Qt::WindowState окна.Это обозначение не очень явно, хотя.

0 голосов
/ 19 октября 2011

Нет необходимости в таком осложнении.Этого достаточно:

widget->raise();
widget->show();

Кстати, вы можете позвонить show() один раз, и, если вы не hide(), нет необходимости снова звонить show().

...