Проблема в том, что когда у меня открыто и активно другое окно, скажем, Google Chrome, когда я вызываю show() в окне, которое я пытаюсь открыть, оно всегда открывается в Google Chrome, поэтому я его не вижу.
То же самое касается фокусировки, когда я у меня открыто несколько окон, и мой QWebView может быть последним в порядке, когда я нажимаю QAction, чтобы сфокусировать окно, он всегда будет под окном Google Chrome.
Мое предположение заключается в том, что когда я нажимаю QAction, который является частью процесса моего приложения, он пытается открыть/сфокусировать окно. Но в середине операции окно Google Chrome назначается по расписанию и получает фокус, поскольку QSystemTrayIcon не может удерживать фокус.
Из-за этого, когда окно открывается/фокусируется, оно будет не перехватывать фокус у Google Chrome, поскольку операционная система не позволяет этого, поэтому оно будет помещено под окно, находящееся в фокусе.
Вот как я создаю/фокусирую окно:
Вот как я создаю/фокусирую окно: p>
Код: Выделить всё
// ...
QPointer view;
// ...
void TrayIcon::webView() {
if (!this->view) {
this->view = new QWebView();
this->view->load("http://example.com");
this->view->show();
} else {
this->view->activateWindow();
this->view->raise();
}
}
Подробнее здесь: https://stackoverflow.com/questions/174 ... ng-in-qt-5
Мобильная версия