私は Maya2012 で Pyqt4 を使用して、UI に似たリファレンス エディタを作成しています。QtableWidget を使用して参照リストを作成しており、各セルにサブウィジェットがあります。ウィジェットの 1 つは、参照をアンロードまたは再ロードするチェックボックスです。私が抱えている問題は、セルを選択せずにチェックボックスを直接クリックしても何も起こらないことです
これは私のコードです:
def listConnections(self):
self.pos=self.sender().currentRow()
wid = self.list.ref_l.cellWidget(self.pos, 0).children()
self.text = self.list.list[self.pos]
self.ref()
for wt in wid:
if type(wt)== type(QCheckBox()):
wt.stateChanged.connect(self.changeState)
if type(wt)== type(QComboBox()):
wt.currentIndexChanged.connect(self.changeType)
サブウィジェットを検出できることを知っていた唯一の方法であるため、「itemSlectionChanged」シグナルで関数を呼び出しています。すべてのサブウィジェットは、リストを埋めた瞬間に作成されます。
私が欲しいものを作る方法はありますか?
編集:
これは私が関数を呼び出す方法です
self.list.ref_l.itemSelectionChanged.connect(self.listConnections)
これがセル内のすべてのサブウィジェットを作成する方法です
def fillList(self):
mayaRef = self.findRef()
if len(mayaRef)>0:
for count in range(0,len(mayaRef)):
self.ref_l.insertRow(count)
wid=QWidget()
cLayout=QHBoxLayout()
wid.setLayout(cLayout)
checkWid=QCheckBox()
nameWid=QLabel()
cLayout.addWidget(nameWid)
nameWid2=QLabel()
cLayout.addWidget(nameWid2)
comWid=QComboBox()
cLayout.addWidget(comWid)
self.ref_l.setCellWidget(count,0,wid)
self.ref_l は私の QTable ウィジェットです。これは、元の self.list で呼び出している別のコードにあります。