我有一个主窗口(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