这是当前应用程序,如下所示:
它有一个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似乎可行的方法,但是还有一种更优雅的方法吗?