我的代码包含一个PyQt6中的QListWidget,其中可以通过拖放对项目进行重新排序。但是,从几个月前,拖放模式已被“禁用”,我不能重新排序我的名单了。同样的代码在其他计算机上似乎工作得很好。
给予一个简单的例子:
from PyQt6.QtWidgets import *
from PyQt6.QtCore import *
from PyQt6.QtGui import *
class MainWindow(QWidget):
def __init__(self):
super().__init__()
list_widget = QListWidget()
# I've tried all combinations of the following calls
list_widget.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection)
list_widget.setDragEnabled(True)
list_widget.viewport().setAcceptDrops(True)
list_widget.setDropIndicatorShown(True)
list_widget.setDragDropMode(QAbstractItemView.DragDropMode.InternalMove)
list_widget.addItem("Item 1")
list_widget.addItem("Item 2")
list_widget.addItem("Item 3")
list_widget.addItem("Item 4")
layout = QVBoxLayout()
layout.addWidget(list_widget)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec()
上面的代码不允许我拖放项目。我在Ubuntu 23.04,PyQt 6.5,Python 3.10.11上运行。我猜这是一个操作系统或Qt的建设问题,但我没有线索...
1条答案
按热度按时间2lpgd9681#
此问题与its own thread的GNOME和Mutter有关。我认为最好的解决方案是等待Ubuntu 23.04的补丁或降级Ubuntu。