gpt4 book ai didi

QTableView 拖动移动行

转载 作者:行者123 更新时间:2023-12-03 08:25:15 29 4
gpt4 key购买 nike

我正在使用 QTableViewQAbstractTableModelQSortFilterProxyModel这样我就可以通过单击表格标题对项目进行排序。我想为用户添加选项,通过拖动它们来手动对 View 中的行进行排序。我不需要能够从/向任何外部应用程序拖放,只是为了更改列表中的顺序。我也不需要更改模型中的数据,我只希望 View 中的顺序不同。

我一直在查看文档,看来我必须实现 mimeTypes , mimeData , 和 dropMimeData ,但这很快就会变得非常复杂!我模型中的一些数据实际上并没有显示在 View 中,就像我说的我不想改变模型中数据的顺序。有没有一种方法可以简单地拖动项目来改变它们的排序(就像标题已经能够做的那样)而不需要大量的编码?

最佳答案

为 QT5 更新以删除不推荐使用的方法

如果您使用的是 PyQT,您只需满足以下要求:

your_tableview.verticalHeader().setSectionsMovable(True)
your_tableview.verticalHeader().setDragEnabled(True)
your_tableview.verticalHeader().setDragDropMode(QAbstractItemView.InternalMove)

然后冲洗并重复 horizontalHeader如果你也想要那些可以重新排列的。

你是绝对正确的,你不应该接触甚至知道这个功能的模型是什么 .您对 QSortFilterProxyModel 的正确使用进一步证明了这一点。模型本身的装饰器。

您看到的有关 mimeTypes 的内容以及所有这些内容都是用于从其他窗口/应用程序/桌面/等拖放不同来源的实际对象,而不是您当前尝试完成的任务。

关于QTableView 拖动移动行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12168610/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com