看到大佬写的代码拿来抄一下;
一个界面内有多个同类型的控件需要操作,如果一个控件一个控件的写会很呆板,而且还会增加代码量,想要更简洁一些可以按照下面demo来:
1.ui里建一个widget,里面放六个按钮
2.构造函数代码:
QList<QAbstractButton *> tbtns = ui->widget->findChildren<QAbstractButton *>();
foreach (QAbstractButton *btn, tbtns) {
btn->setCheckable(true);
connect(btn, SIGNAL(clicked()), this, SLOT(buttonClick()));
}
3.buttonClick函数实现:
void MainWindow::buttonClick()
{
QAbstractButton *b = (QAbstractButton *)sender();
QString name = b->text();
QList<QAbstractButton *> tbtns = ui->widget->findChildren<QAbstractButton *>();
foreach (QAbstractButton *btn, tbtns) {
btn->setChecked(btn == b);
}
if(name == "1") {
qDebug() << "1";
} else if(name == "2") {
qDebug() << "2";
} else if(name == "3") {
qDebug() << "3";
} else if(name == "4") {
qDebug() << "4";
}
//......
}
注:也可以是其他控件,总之很方便。如QLineEdit会很快速获取所有控件文本内容,省的一行一行去写获取文本代码了。