我试图创建一个QListWidget版本(在PySide中),其中itemClicked信号不会携带一个项目,而是一个QListWidget中所有项目的列表。
我尝试了不同的东西,但到目前为止还没有运气。这就是我的ATM:
class RelationsListWidget(QListWidget):
all_items = Signal(list)
item_list = []
def __init__(self):
QListWidget.__init__(self)
self.itemClicked.connect(self.gather_items)
def gather_items(self):
self.item_list = [self.item(i) for i in range(self.count())]
self.all_items.emit(self.item_list)
但是当我连接它时:
class NodeEditWindow(QDialog):
...
self.list_consumes = RelationsListWidget()
self.list_consumes.itemClicked.connect(self.create_SelectRelationsWindow)
...
@Slot(object)
def create_SelectRelationsWindow(self, list_widget):
print("create_SelectRelationsWindow: %s" % type(list_widget))
我得到了:
create_SelectRelationsWindow: <class '__main__.NodeItem'>
因此它只包含一个项目,而不是列表。
相关问题:
How to connect custom signal to slot in pyside with the new syntax?