溫馨提示×

qt如何獲取窗口內所有控件

qt
小億
763
2023-11-03 13:41:15
欄目: 編程語言

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

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女