-1

私は に 3 を持っておりconnect function、とpyQtに関連して3 signalいます:one slotone widget

    QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL(_fromUtf8("itemClicked(QTableWidgetItem*)")),
                           lambda:  self.materialsInstance.setFilterDict_Insert("TW",self,"imported_party_attributes",0,self.tableWidget.currentItem().row(),self.tableWidget.currentItem().column()))
    QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL(_fromUtf8("cellChanged(int,int)")),
                           lambda: self.materialsInstance.setFilterDict_Insert("TW",self,"imported_party_attributes",0,self.tableWidget.currentItem().row(),self.tableWidget.currentItem().column()))
    ###clear cell and remove from dict
    QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL(_fromUtf8("currentCellChanged(int,int,int,int)")),
                           lambda: self.materialsInstance.setFilterDict_Insert("TW",self,"imported_party_attributes",0,self.tableWidget.currentItem().row(),self.tableWidget.currentItem().column()))#,"currentCellChanged(int,int,int,int))"))

最初に 2 で問題はありませんでしたが、3 番目connect functionで次のトレースバックが表示されconnect functionます。

Traceback (most recent call last):
  File "/home/mohsen/codes/amlak/amlak/src/materialsInsertFrame.py", line 244, in <lambda>
    lambda: self.materialsInstance.setFilterDict_Insert("TW",self,"imported_party_attributes",0,self.tableWidget.currentItem().row(),self.tableWidget.currentItem().column()))#,"currentCellChanged(int,int,int,int))"))
AttributeError: 'NoneType' object has no attribute 'row'

私は何の考えもありませんでしたSignal-Sloting、あなたは持っていますか?

注:最初の 2 つconnect functions は問題なく動作します。

私の質問signalは、最初の 2と最後の違いは何signalですか?

4

2 に答える 2

0

私は解決しました、信号は QTableWidget に関連しています 2 セットです:

  1. 現在時刻に関連する
  2. 時間関係なし。

最初のオプションでは、'NoneType' object has no attribute 'row'ユーザーがウィジェットをクリックしないため、ユーザーが取得しますが、2番目のオプションでは、時間が必要なく、指定されtracebackた .

于 2013-09-26T04:46:27.883 に答える