這是我的問題。我想創建n的數量QLineEdit小部件(n可以是任何數字,取決於輸入值)。我可以創建這些小工具,給它們提供對象名稱和文本,但是我不能在它們上面定義信號(我希望每個小工具在與它進行交互時都會發出信號)。這裏是OD代碼的例子:PyQt - 定義循環中多個對象的信號
self.fieldList = {}
for (i, value) in attrMap.iteritems():
self.fieldList["valueField" + str(i)] = QtGui.QLineEdit()
self.fieldList["valueField" + str(i)].setObjectName(_fromUtf8("attributeValueField_{0}".format(i)))
self.fieldList["valueField" + str(i)].setText(_fromUtf8("{0}".format(value.toString())))
self.fieldList["valueField" + str(i)].cursorPositionChanged.connect(lambda: (self.checkState(self.fieldList["valueField" + str(i)])))
的問題仍然存在在最後一行:
self.fieldList["valueField" + str(i)].cursorPositionChanged.connect(lambda: (self.checkState(self.fieldList["valueField" + str(i)])))
我認爲信號會堅持每一個部件,但由於循環,信號「跳躍」從小部件到小部件,直到它到達最後一個小部件,只有最後一個小部件才能發出信號。那麼我該如何安排每個部件在更改時發出信號?
我做functools,但我得到了同樣的邏輯錯誤。 – PersianGulf