【发布时间】:2020-10-10 18:47:46
【问题描述】:
我确实将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())
【问题讨论】:
标签: python pyqt pyqt5 qlistwidget