我为调试目的创建了自己的简单窗口。它是完全独立的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;
}
我在覆盖函数中设置了断点,它被击中了——这意味着我做对了。但是窗户还是像以前一样被挡住了。
所以我可能遗漏了一些东西,有人可以帮我完成这个吗?