2017-02-16 3 views
2

Ich möchte die Liste aller QPushButton in meinem MainWindow erhalten.QT - Holen Sie sich die Liste aller QPushButton

Eigentlich habe ich eine QRadioButton, und wenn ich es deaktivieren, möchte ich alle QPushButton meines Fensters deaktivieren.

Wie kann ich das tun?

Vielen Dank!

+0

Dies ist in der [Dokumentation] enthalten (https://doc.qt.io/qt-5/qobject.html#findChildren). – nwp

+0

Oh danke! Es tut mir leid für diese blöde Frage ... – iAmoric

Antwort

5

Hier ist ein minimales Beispiel:

#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; 
} 
Verwandte Themen