2017-02-16 191 views
2

我想在我的MainWindow中獲取所有QPushButton的列表。QT - 獲取所有QPushButton的列表

其實,我有一個QRadioButton,當我取消選中它時,我想禁用我窗口中的所有QPushButton。

我該怎麼做?

非常感謝!

+0

這被包括在[文檔】在(https://doc.qt.io/qt-5/qobject.html#findChildren)。 – nwp

+0

哦,謝謝!我爲這個愚蠢的問題感到抱歉... – iAmoric

回答

5

這裏是一個小例子:

#include <QApplication> 
#include <QWidget> 
#include <QPushButton> 
#include <QLabel> 
#include <QDebug> 

int main(int argn, char **argc) 
{ 
    QApplication app(argn, argc); 

    // Creating some content 
    QWidget window; 
    QPushButton ba(&window); ba.setObjectName("but1"); 
    QPushButton bb(&window);bb.setObjectName("but2"); 
    QLabel l(&window); l.setObjectName("label"); 
    QPushButton bc(&l);bc.setObjectName("but3"); 


    // Getting all buttons 
    QList<QPushButton *> butts = window.findChildren<QPushButton *>(); 
    qDebug() << butts.size(); 

    for (const auto *but: butts) qDebug() << " " << but->objectName(); 

    return 0; 
}