亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

循環中的QtCore.QObject.connect僅影響最后一個實例

循環中的QtCore.QObject.connect僅影響最后一個實例

波斯汪 2020-02-02 15:17:09
我有一個循環。我創建了一個QCheckBox并將其放在QTableWidget單元格中,一切正常。在循環的每個步驟中,我都connect為myslot SLOT 調用了一個函數,但僅應用了最后一個QCheckBox實例。我在Google上搜索了很多,發現很多人遇到我的問題。我已經應用了他們的解決方案,但是我的問題仍然存在。for row in xrange(len(uniqueFields)):    instance = QtGui.QCheckBox(uniqueFields[row], findInstance.tableWidget)    print QtCore.QObject.connect(instance,        QtCore.SIGNAL(_fromUtf8("stateChanged (int)")),        lambda: findInstance.projectsInstance.myslot(                    "TWCH", findInstance, instance.text(),                    instance.checkState(), instance))    findInstance.tableWidget.setRowCount(findInstance.tableWidget.rowCount() + 1)    findInstance.tableWidget.setCellWidget(row, 0, instance)注意:我的connect函數return True。如何connect在枚舉所有instances?的循環中創建函數?
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

我有同樣的問題,您應該使用functools.partial例如:


for key, val in a_DICT_THAT_YOU_STORED_YOUR_OBJECTS_AND_STRINGS:

    obj = partial(   findInstance.projectsInstance.myslot,arg1="TWCH",arg2=self,arg3=key,arg4=val.checkState() )

    QtCore.QObject.connect(val, QtCore.SIGNAL(_fromUtf8("stateChanged (int)")), obj)

當然,argX應該設置為函數名稱參數的真實名稱。


查看完整回答
反對 回復 2020-02-02
  • 3 回答
  • 0 關注
  • 1211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號