//遍歷UI中的QPushButton
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSignalMapper *mapper = new QSignalMapper(this);
QObjectList list = children();
foreach (QObject *obj, list) {
if (obj->metaObject()->className() == QStringLiteral("QWidget")){
QObjectList list2 = obj->children();
foreach (QObject *obj1, list2){
if (obj1->inherits("QPushButton")){
QPushButton *b = qobject_cast<QPushButton*>(obj1);
mapper->setMapping(b, b->text());
connect(b, SIGNAL(clicked(bool)), mapper, SLOT(map()));
}
}
}
}
connect(mapper, SIGNAL(mapped(QString)), this, SLOT(slotButton(QString)));
}
void MainWindow::slotButton(QString s)
{
qDebug() << s;
}
Qt遍歷ui窗口控件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.