如何在 PyQt4 的动态复选框列表中检查 stateChanged

How to check stateChanged in a dynamic checkbox list in PyQt4

所以我要从 PyQt4 的列表中添加复选框。但是我想不出一种方法来在我的 Window class.

中为每个人使用 stateChanged

这是从列表元素中添加它们的函数:

  def addCheckbox(self):
        colunas = Graphic(self.caminho).getColunas()
        for col in colunas:
            c = QtGui.QCheckBox(col, self, objectName=col)
            self.layout.addWidget(c)

我试图在 while True 中获取它们的对象名称并使用:

self.name.stateChanged.connect(self.clickBox)

但这只会冻结代码。

我该怎么做?

您可以尝试以下方法:

def clickBoxStateChanged(self, objectName):
    def stateChanged(state):
        print(objectName)
        print(state)
    return stateChanged

然后,在你的循环中:

  for col in colunas:
        c = QtGui.QCheckBox(col, self, objectName=col)
        c.stateChanged.connect(self.clickBoxStateChanged(col))
        self.layout.addWidget(c)