【发布时间】:2013-01-20 00:50:09
【问题描述】:
我正在尝试让我的代码与多个 listView 一起工作,而不仅仅是一个,但我遇到了问题。
一个列表的工作代码:
Class Ui_MainWindow(QtGui.QMainWindow):
def itemDropped(self, links):
item = QtGui.QListWidgetItem(url, self.listView)
def setupUi(self, MainWindow):
self.connect(self.listView, QtCore.SIGNAL("dropped"), self.itemDropped)
Class TestListView(QtGui.QListWidget):
def dropEvent(self, event):
self.emit(QtCore.SIGNAL("dropped"), links)
到目前为止我有什么可以使用多个列表:
Class Ui_MainWindow(QtGui.QMainWindow):
def itemDropped(self, links, listName):
item = QtGui.QListWidgetItem(url, listName)
def setupUi(self, MainWindow):
self.connect(self.listView, QtCore.SIGNAL("dropped"), self.itemDropped(self.listView))
Class TestListView(QtGui.QListWidget):
def dropEvent(self, event):
self.emit(QtCore.SIGNAL("dropped"), links)
所以我收到“self.itemDropped(self.listView)”的错误,经过对这里和其他网站的研究,我想出了这个:
self.connect(self.listView, QtCore.SIGNAL("dropped"),(lambda : self.itemDropped(self.listView)))
我以前从未使用过 lambda 函数,因为我对 python 还很陌生,但这确实解决了问题,当我打印 listName 时,它会正确显示。现在的问题是链接没有从其他类正确发出,或者我没有正确接收它们。
所以我想我需要这样的pseduocode:
self.connect(self.listView, QtCore.SIGNAL("dropped"),(lambda : self.itemDropped(X, self.listView)))
问题是我如何获得 X,即来自 TestListView 类的链接?当没有变量传递给函数时,我不太明白我是如何仅通过 1 个列表接收它们的。
感谢你们提供的任何帮助,我非常感谢。 附:如果您想要更大的图景,这里的代码可能看起来很熟悉PyQT4: Drag and drop files into QListWidget
【问题讨论】:
标签: python listview pyqt signals-slots