我有一個主窗口(QMainWindow中),並用標誌的Qt :: WindowStaysOnTopHint提供輔助信息和選項(姑且稱之爲助手)一個小部件。如果我使用主窗口,然後單擊任何其他應用程序,則此窗口不再處於活動狀態(isActiveWindow()== false)。但是,如果我首先使用幫助器,然後切換到其他應用程序/窗口(而不是主窗口),它將保持活動狀態。我如何處理從助手窗口切換到其他應用程序?即使QApplication :: activeWindow()也會因此而返回true。的Qt :: WindowStaysOnTopHint部件始終處於激活狀態
.h文件中:
//! Popup structure that contains listw_popup that shows tips
struct PopupWidget {
PopupWidget(QWidget*);
QWidget *base;
QListWidget *listw_popup;
};
class MainWindow : public QMainWindow
{
...
private :
PopupWidget popup_spec;
...
}
.cpp文件:
PopupWidget::PopupWidget(QWidget* parent)
{
base = new QWidget(parent, Qt::SplashScreen | Qt::WindowStaysOnTop);
listw_popup = new QListWidget(base);
}
MainWindow::MainWindow(QWidget *parent) : ... popup_spec(this) ...
{
...
}
當popup_spec.base.show()被調用這個小部件出現。如果我點擊這個小部件(意味着小部件變成活動的),即使我切換到其他應用程序,它仍然是活動的。
你想要什麼行爲來實現? – Jay 2013-04-11 17:59:17
@Jay當我從這個應用程序切換到另一個時,我需要幫助窗口消失。 – YAPPO 2013-04-12 06:00:53
我無法重現您的問題。我假設幫手小部件是一個父母小部件的權利?你能顯示一些最小的代碼來顯示你當前的行爲嗎? – Viv 2013-04-12 11:27:42