批量操作QT UI中的控件
背景:在一个项目中,可能一个UI中存在大量相同的tablewidget,combobox,label等控件,每种可能有100个,此时想对它们进行同样的操作
方案:(以tablewidget为例,UI中有名称为tablewidget_1到tablewidget_10的10个tablewidget)
- 自然想到的是一个一个的操作,对它们的属性进行修改、设置,虽然可以实现,但是工作量太大
- QList<QTableWidget *> tablewidgetlist = this->findChildren<QTableWidget*>(); //可以得到页面内所有的tablewidget,但没有按顺序存储在tablewidgetlist中,因此想要按顺序控制有些难度
-
QList<QTableWidget *> tablewidgetlist = tablewidgetlist<<ui.tableWidget_1<<ui.tableWidget_2<<ui.tableWidget_3<<ui.tableWidget_4<<ui.tableWidget_5<<ui.tableWidget_6 <<ui.tableWidget_7<<ui.tableWidget_8<<ui.tableWidget_9<<ui.tableWidget_10; 使用时只须用tablewidgetlist.at(i)就可以实现调用,如果要修改可tablewidgetlist[i]