Owe*_*wen 23 c++ qt widget keypress qtestlib
我正在通过Qt的KeyPress函数模拟应用程序的keyPresses.所有的KeyPress工作正常.但是,当我传递一个QT::Key_Enter应该按下当前活动窗口的OK按钮或QT::Key_Cancel取消按钮时,它什么都不做.
我想也许,因为这些按钮没有焦点,父窗口本身就有了它.你怎么得到窗户的孩子?或者更确切地说,在其上找到OK或Cancel按钮,以便将其设置为activeWindow,然后成功传递KeyPresses?
我有:
QWidget *pWin = QApplication::activeWindow;
QObjectList *pList = pWin->children();
//how do you iterate through the list and find the OK or Cancel button?
Run Code Online (Sandbox Code Playgroud)
Pat*_*ola 54
您可以使用findChild带有对象名称的函数来获取特定的子项.您可以使用太findChildren让具有相同的名称,并通过使用列表中的迭代所有的孩子foreach或QListIterator.
要获得按钮,您可以尝试:
QPushButton* button = pWin->findChild<QPushButton*>("Button name");
Run Code Online (Sandbox Code Playgroud)