12

私は辞書のリストを持っています:

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

'ctrl' - Qt ウィンドウ内のコントロールの名前。

通常、コードは次のとおりです。

self.checkBoxEnabled.checkState()

ただし、checkBoxEnabled はオブジェクトです。文字列名「checkBoxEnabled」しかなく、使用できません...

pyqtで名前でオブジェクトを見つける方法は? 何かのようなもの?自己。GetObjectByName('checkBoxEnabled') .checkState()

4

2 に答える 2

23

メソッドを使用できますQObject::findChild。pyqt では、次のように記述します。

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

selfチェックボックスの親ウィジェットにする必要があります。

于 2013-09-28T00:50:17.493 に答える
1

UI 内のすべての QCheckBox アイテムを見つけるには、以下のようにウィジェットのすべての子をループします。

from PyQt5.QtWidgets import QCheckBox
from PyQt5.QtCore import QObject

class Mainwindow(QMainWindow):
    def __init__(self):
        # super().__init__()
        self.checkbox = QCheckBox(self)
        self.checkbox_1 = QCheckBox(self)

        for checkstate in self.findChildren(QCheckBox):
            print(f'get check state:{checkstate.checkState()}')

于 2020-04-11T08:05:32.600 に答える