更新Qtable中的单元格小部件更改而不选择

2024-05-14 10:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在2012年5月使用Pyqt4来创建一个类似引用编辑器的ui。我使用一个QtableWidget创建引用列表,每个单元格中都有子窗口小部件。其中一个小部件是卸载或重新加载引用的复选框。 我遇到的问题是,如果直接在复选框中单击而不选中单元格,则不会执行任何操作

这是我的代码:

 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”信号调用函数,因为这是我知道我可以检测子窗口小部件的唯一方法。 所有的子部件都是在我填写列表时生成的。在

有没有办法做我想要的?在

编辑:

我就是这么叫这个函数的

^{pr2}$

这就是我如何在单元格中创建所有子窗口小部件的方法

 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)

在自我参考是我的QTable小部件,这是用另一个代码调用的自我列表在原稿中


Tags: posselfref列表if部件typecount
1条回答
网友
1楼 · 发布于 2024-05-14 10:29:15

fillList中创建复选框后,您应该立即设置所有连接。每个项都与引用的路径相关联。可以使用QSignalMapper将每个复选框映射到路径,然后将信号映射器连接到changeState插槽。然后,信号映射器使用指定的路径调用该插槽。在

相关问题 更多 >

    热门问题