当单击itemwidget中的小部件时,Pyqt获取qlistwidget项目

时间:2018-06-23 10:50:16

标签: python-2.7

这是当前应用程序,如下所示:

它有一个Qlistwidget listWidget_links,其中每个项目都有自己的itemwidget集(组合框,复选框,按钮等)。现在我遇到了一个谷歌或我都无法解决的问题。

如果用户按下创建按钮或其他任何项目的itemwidget,我如何让方法知道该项目小部件被按下的内部

item_widget.comboBox_type.currentIndexChanged.connect(self.itemupdate_linktype)
item_widget.checkBox_hide.stateChanged.connect(self.itemupdate_hidden)


cbox = self.sender() # gives the widget that released the signal
cbox.parent() #I discovered by a lucky try, returns NodeLinkItemWidgetUI.Ui_Form object which is a item's itemwidget

这里是如何创建项目以更好地了解程序结构的方法:

def createNewLink(self, nodename, nodeclass):
        item = QtWidgets.QListWidgetItem(self.listWidget_links)
        item_widget = NodeLinkItemWidgetUI.Ui_Form(nodename, nodeclass)

        item.nodename = nodename
        item.nodeclass = nodeclass

        item.setSizeHint(QtCore.QSize(130, 160))
        self.listWidget_links.addItem(item)
        self.listWidget_links.setItemWidget(item, item_widget)

编辑:解决了设置变量item_widget.item = item似乎可行的方法,但是还有一种更优雅的方法吗?

0 个答案:

没有答案