QListWidget拖放内部移动信号
QListWidget drag drop internalMove signal
我确实将 QListWidget
的 dragDropMode
更改为 InternalMove
。现在可以通过拖放更改项目的顺序。
我现在需要在项目顺序发生变化时执行一个函数。
因此,我想 connect
向我的功能之一发出信号。
但是,我很难找到正确的信号。
我尝试了很多(例如:itemChanged
),但到目前为止没有运气。
有人知道当我通过拖放更改项目顺序时会发出哪个信号吗?
示例:我想将 drag_drop
操作连接到 self.drag_drop_happened()
函数。
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.InitWindow()
def InitWindow(self):
self.setWindowTitle("Drag Drop enabled")
vbox= QVBoxLayout()
self.list = QListWidget()
self.list.insertItem(0, "A")
self.list.insertItem(1, "B")
self.list.insertItem(2, "C")
self.list.insertItem(3, "D")
self.list.setDragDropMode(self.list.InternalMove)
vbox.addWidget(self.list)
self.setLayout(vbox)
self.show()
# self.list connect to self.drag_drop_happened()
def drag_drop_happened(self):
pass
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())
self.list.model().rowsMoved.connect(self.drag_drop_happened)
void QAbstractItemModel::rowsMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row)
我确实将 QListWidget
的 dragDropMode
更改为 InternalMove
。现在可以通过拖放更改项目的顺序。
我现在需要在项目顺序发生变化时执行一个函数。
因此,我想 connect
向我的功能之一发出信号。
但是,我很难找到正确的信号。
我尝试了很多(例如:itemChanged
),但到目前为止没有运气。
有人知道当我通过拖放更改项目顺序时会发出哪个信号吗?
示例:我想将 drag_drop
操作连接到 self.drag_drop_happened()
函数。
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.InitWindow()
def InitWindow(self):
self.setWindowTitle("Drag Drop enabled")
vbox= QVBoxLayout()
self.list = QListWidget()
self.list.insertItem(0, "A")
self.list.insertItem(1, "B")
self.list.insertItem(2, "C")
self.list.insertItem(3, "D")
self.list.setDragDropMode(self.list.InternalMove)
vbox.addWidget(self.list)
self.setLayout(vbox)
self.show()
# self.list connect to self.drag_drop_happened()
def drag_drop_happened(self):
pass
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())
self.list.model().rowsMoved.connect(self.drag_drop_happened)
void QAbstractItemModel::rowsMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row)