2013-09-27 4 views
8

У меня есть список словарей:Как найти объект по названию в pyqt?

globalParams = [{'attr':'enabled','ctrl':'checkBoxEnabled','type':'checkBox'}, 
       {'attr':'colorMode','ctrl':'comboBoxColorMode','type':'comboBox'}] 

«Ctrl» - имя элемента управления в окне Qt.

обычно, код выглядит следующим образом:

self.checkBoxEnabled.checkState() 

но checkBoxEnabled является объектом. и у меня есть только строковое имя «checkBoxEnabled» и не может его использовать ...

Как найти объект по названию в pyqt? что-то вроде? self. GetObjectByName ('checkBoxEnabled') .checkState()

ответ

14

Вы можете использовать QObject::findChild метод. В PyQt должно быть написано так:

checkbox = self.findChild(QtGui.QCheckBox, "checkBoxEnabled") 

self должен быть родительским виджетом флажком.

Смежные вопросы