2010-11-18 240 views
7

我正在編寫一個模擬按鍵的測試應用程序,我想在每次按鍵後顯示窗口。這是代碼塊。Qt:我如何獲得當前正在運行的窗口?

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")); 

回答

8

如果你所有的窗戶都被通過應用程序創建的,你可以使用QApplication類。 例如,activeWindow()函數返回具有輸入焦點的小部件。但還有很多其他功能可以幫助你。

希望有幫助

+0

+1這是正確的解決方案。 – Venemo 2010-11-18 08:58:02

+0

雖然我收到了分段錯誤。我可能會做錯什麼......我更新了上面的代碼塊...... :( – Owen 2010-11-18 10:45:02

+3

)正如文檔中的解釋,如果沒有窗口具有輸入焦點,返回指針可以爲null。這可能發生在寡婦沒有鍵盤輸入試着在你的測試窗口中添加一個QTextEdit – 2010-11-18 10:51:36

相關問題