如何使用QEvent :: WindowBlocked以使特定窗口始终处于活动状态?

时间:2018-02-08 13:53:45

标签: c++ qt qwidget qmainwindow qevent

我创建了自己的简单窗口用于调试目的。它完全独立QMainWindow,因此我可以在测试应用时将其放在另一台显示器上。但是当我的应用程序中有一个对话框时,我无法访问该窗口。现在,这正是我想要访问它的时间。

我试图像这样覆盖QWidget::event

DebugWindow.h

#include <QtWidgets/QMainWindow>
QT_BEGIN_NAMESPACE
class QEvent;
QT_END_NAMESPACE
class DebugWindow : public QMainWindow
{
    Q_OBJECT
public:
    DebugWindow(QWidget *parent = 0);
    virtual ~DebugWindow();

protected:
    virtual bool event(QEvent*);
};

DebugWindow.cpp

bool TechadminScript::event(QEvent* e)
{
    if (e->type() == QEvent::WindowBlocked) {
        // accept the event to stop propagation
        e->accept();
        return true;
    }
    return false;
}

我在overriden函数中设置了断点并且它被击中了 - 这意味着我做了一些正确的事情。但窗口仍然像以前一样被阻挡。

所以我可能错过了一些东西,有人可以帮我完成这个吗?

0 个答案:

没有答案