c++ - 你如何在 Qt 中获得一个小部件的 child ?

标签 c++ qt widget keypress qtestlib

我正在通过 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/

相关文章:

c++ - 为什么函数重载有歧义,而模板重载却没有歧义?

c++ - Qt初学者: QPainter widget not rendering

c++ - glBlitFramebuffer 与 QOpenGLFunctions

c++ - 通过引用返回 std::vector 导致段错误

c++ - 为什么 "defau4t"在 switch 语句中是合法的?

c++ - 使用 C++ OOB 的贪吃蛇游戏

c++ - QVariants 与 QStringList 比较

javascript - 控制台向我显示 Angular 7 中的 ExpressionChangedAfterItHasBeenCheckedError

安卓小工具 : How to add Views to RemoteViews on runtime

java - 当我拥有所有 Joda DateTime 对象时,如何使用 SWT 日历?