拖放在PyQt6 Ubuntu 23.04上不起作用

x7rlezfr  于 2023-05-22  发布在  其他
关注(0)|答案(1)|浏览(174)

我的代码包含一个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的建设问题,但我没有线索...

2lpgd968

2lpgd9681#

此问题与its own thread的GNOME和Mutter有关。我认为最好的解决方案是等待Ubuntu 23.04的补丁或降级Ubuntu。

相关问题