可以使用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控件,并將它們的名稱打印到控制臺輸出。