コードを 1 つではなく複数の listView で動作させようとしていますが、問題が発生しています。
1 つのリストの作業コード:
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)))
私はPythonにまったく慣れていないので、これまでラムダ関数を使用したことはありませんでしたが、listNameを印刷すると問題が修正され、正しく表示されました。現在の問題は、リンクが他のクラスから正しく発信されていないか、正しく受信されていないことです。
したがって、疑似コードには次のようなものが必要だと思います:
self.connect(self.listView, QtCore.SIGNAL("dropped"),(lambda : self.itemDropped(X, self.listView)))
問題は、TestListView クラスからのリンクである X を取得するにはどうすればよいかということです。関数に変数が渡されていないときに、1つのリストだけでそれらを受け取った方法がよくわかりません。
皆さんが提供できるすべての助けに感謝します。PyQT4 : ファイルを QListWidget にドラッグ アンド ドロップします。