阅读量:3
可以使用QObject::findChildren
函数来获取窗口内的所有控件。该函数的原型如下:
template <typename T> QList<T*> QObject::findChildren(const QString& name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const;
其中,T
是控件的类型,name
是要查找的控件名称(可选参数),options
是查找选项(可选参数)。
以下是一个示例代码,展示了如何获取窗口内所有的QPushButton控件:
#include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget window; QPushButton button1("Button 1", &window); QPushButton button2("Button 2", &window); QPushButton button3("Button 3", &window); window.show(); // 获取窗口内所有QPushButton控件 QList<QPushButton*> buttons = window.findChildren<QPushButton*>(); // 打印控件名称 for (QPushButton* button : buttons) { qDebug() << button->text(); } return a.exec(); }
运行上述代码,窗口会显示3个QPushButton控件,并将它们的名称打印到控制台输出。