问:我如何获得当前运行的窗口?

时间:2010-11-18 08:23:53

标签: c++ unit-testing user-interface qt qtestlib

我正在编写一个模拟按键的测试应用程序,我想在每次按键后显示什么窗口。这是代码块。

std::auto_ptr<MyForm> pForm(new MyForm(3,3)); 
QTest::keyPress(pForm.get(), Qt::Key_0); 

在这里按0后,会出现一个窗口,我想检查它是什么窗口,这样我可以稍后进行QCompare /评估。

任何想法?

更新

使用

时出现分段错误
std::auto_ptr<MyForm> pForm(new MyForm(3,3)); 
QTest::keyPress(pForm.get(), Qt::Key_0); 
QWidget *pWin = QApplication::activeWindow();
QCOMPARE(pWin->windowTitle(), QString("My Second Menu"));

1 个答案:

答案 0 :(得分:8)

如果您的所有窗口都是通过您的应用程序创建的,则可以使用QApplication类。 例如,activeWindow()函数返回具有输入焦点的窗口小部件。但是还有很多其他功能可以帮助你。

希望有所帮助