Ответ 1
это рабочий "ярлык":
widget->setWindowState(Qt::WindowActive) ;
Вы можете связать его с последним Qt::WindowState
окна.
Однако эта нотация не очень ясна.
Довольно часто я нахожу, что мне нужно показать и принести окно на фронт. Например, когда пользователь пытается перезагрузить один и тот же документ, я просто выношу старый. Для этого у меня есть такой код:
widget->raise();
widget->activateWindow();
widget->showNormal();
Это начинает чувствовать, что у меня отсутствует функция быстрого доступа. Конечно, этот тип поведения довольно распространен. Есть ли какая-то предпочтительная функция, которая будет делать все вышеизложенное и/или просто делать правильную вещь на каждой целевой ОС?
Примечание. Я только что заметил дефект, поэтому особая функция еще важнее. Если окно сведено к минимуму, activateWindow
не работает. Это происходит, даже если вы сначала измените порядок выше на showNormal
.
это рабочий "ярлык":
widget->setWindowState(Qt::WindowActive) ;
Вы можете связать его с последним Qt::WindowState
окна.
Однако эта нотация не очень ясна.
Нет необходимости в таком осложнении. Этого достаточно:
widget->raise();
widget->show();
Кстати, вы можете вызвать show()
один раз, и если вы не hide()
его, нет необходимости снова звонить show()
.