发出信号中的列表

时间:2016-09-16 10:09:21

标签: python-3.x pyside signals-slots qlistwidget

我试图创建一个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?

PyQt4.QtCore.pyqtSignal object has no attribute 'connect'

0 个答案:

没有答案