Pyqt получает элемент qlistwidget при нажатии на виджет внутри itemwidget - PullRequest
0 голосов
/ 23 июня 2018

это текущее приложение выглядит следующим образом:

У него есть 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, похоже, работает, но естьэлегантный способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...