我正在通过 Qt 的 KeyPress 函数模拟应用程序的 keyPresses。所有 KeyPresses 工作正常。但是,当我传递一个应该按下当前事件窗口的 OK 按钮的 QT::Key_Enter
或取消按钮的 QT::Key_Cancel
时,它什么也不做.
我在想也许,因为这些按钮没有焦点,而父窗口本身有焦点。你如何得到一个窗口的 child ?还是找到它上面的 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?
最佳答案
您可以使用 findChild()
使用对象名称的函数来获取特定的 child 。
您也可以使用 findChildren()
来获取所有具有相同名称的 child ,然后使用 foreach()
或 QListIterator
遍历列表.
要获得按钮,您可以尝试:
QPushButton* button = pWin->findChild<QPushButton*>("Button name");
关于c++ - 你如何在 Qt 中获得一个小部件的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4311352/