我想获取MainWindow中所有QPushButton
的列表。实际上,我有一个QRadioButton
,当我取消选中它时,我想禁用我窗口的所有QPushButton
。
我该怎么做?
答案 0 :(得分:9)
这是一个最小的例子:
#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;
}