如何在pyqt中按名称查找对象?

Max*_*xKu 10 qt pyqt objectname

我有一个词典列表:

globalParams = [{'attr':'enabled','ctrl':'checkBoxEnabled','type':'checkBox'},
                {'attr':'colorMode','ctrl':'comboBoxColorMode','type':'comboBox'}]
Run Code Online (Sandbox Code Playgroud)

'ctrl' - Qt窗口中控件的名称.

通常,代码如下:

self.checkBoxEnabled.checkState()
Run Code Online (Sandbox Code Playgroud)

但checkBoxEnabled是一个对象.我只有一个字符串名称'checkBoxEnabled',不能使用它...

如何在pyqt中按名称查找对象?就像是?自.GetObjectByName('checkBoxEnabled'). checkState()

Pav*_*hov 19

你可以使用QObject::findChild方法.在pyqt中它应该写成这样:

checkbox = self.findChild(QtGui.QCheckBox, "checkBoxEnabled")
Run Code Online (Sandbox Code Playgroud)

self 应该是复选框的父窗口小部件.