Tôi có QSystemTrayIcon với QAction mở cửa sổ mới của loại QWebView. Khi cửa sổ mất tiêu điểm và tôi chọn lại QAction, cửa sổ sẽ lấy lại tiêu điểm. Nó có trên Linux, nhưng không có trên Mac OS X. Vấn đề là, khi tôi có một cửa sổ khác mở và hoạt động, giả sử Google Chrome, khi tôi gọi show() trên cửa sổ tôi đang cố gắng mở, nó luôn được mở trong Google Chrome, vì vậy tôi không thấy nó. Cũng giống như khi lấy nét, khi tôi có nhiều cửa sổ đang mở và QWebView của tôi có thể là cửa sổ cuối cùng theo thứ tự, khi tôi nhấp vào QAction để tập trung cửa sổ, nó sẽ luôn nằm trong cửa sổ Google Chrome. Tôi đoán, khi tôi nhấp vào QAction, đó là một phần của quy trình ứng dụng của tôi, nó sẽ cố gắng mở/lấy nét cửa sổ, nhưng ở giữa thao tác, cửa sổ Google Chrome được lên lịch và lấy nét, vì QSystemTrayIcon không thể giữ lấy nét. Do đó, khi cửa sổ được mở/lấy nét, nó sẽ không lấy tiêu điểm từ Google Chrome, bởi vì hệ điều hành không cho phép nó, vì vậy nó sẽ được đặt dưới cửa sổ hiện đang tập trung.QWidget trên Mac OS X không tập trung vào Qt 5.x
đây như thế nào tôi có thể tạo/tập trung các cửa sổ:
// ...
QPointer<QWebView> 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();
}
}
Có cái gì tôi làm không đúng cách hoặc là có bất kỳ workaround biết?
Thật không may, đây không phải tác phẩm trong các cửa sổ 10 –