我有一个主窗口(QMainWindow)和一个带有标志 Qt::WindowStaysOnTopHint 的小部件,它提供辅助信息和选项(我们称之为助手)。如果我使用主窗口,然后单击任何其他应用程序,则该窗口将不再处于活动状态(isActiveWindow() == false)。但是,如果我先使用帮助程序,然后切换到其他应用程序/窗口(而不是主窗口),它会保持活动状态。如何处理从帮助窗口切换到其他应用程序?甚至 QApplication::activeWindow() 也因此返回 true。
.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() 被调用时,这个小部件就会出现。如果我单击此小部件(意味着小部件变为活动状态),即使我切换到其他应用程序,它也会保持活动状态。