问:是否可以在QDialog / QWindow中对相同对象进行索引访问?

时间:2016-01-13 19:19:53

标签: qt user-interface object indexing dialog

我在Windows7平台上使用Qt5 使用QtCreator我创建了以下QDialog:

enter image description here

目前,QCheckBox'和QTimeEdit分别为:

- for Monday: checkBoxOpen1 and checkBoxClose1   
- for Monday: timeOpen1 and timeClose1   
- ...   
- for Sunday: checkBoxOpen7 and checkBoxClose7   
- for Sunday: timeOpen7 and timeClose7   

此QDialog界面中的所有对象都类似 使用它非常困难(获取/设置这些对象的属性/值很麻烦......)

所以,问题是:有没有办法为QDialog接口中的所有类似对象提供一些索引访问? (我希望能够以某种方式保留QtDesigner提供的设施...)

1 个答案:

答案 0 :(得分:1)

创建窗口小部件时,可以使用以下命令设置其名称:

void setObjectName(const QString & name)

假设您的所有小部件父级都是p,那么您可以使用:

QList<QWidget*> widgets = p.findChildren<QWidget*>("widgetname");

如果您想获得所有QPushButton,请使用:

QList<QPushButton*> widgets = p.findChildren<QPushButton*>();