это текущее приложение выглядит следующим образом:
У него есть Qlistwidget listWidget_links
, где у каждого элемента есть собственный набор 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, похоже, работает, но естьэлегантный способ?