【发布时间】:2013-07-02 06:00:59
【问题描述】:
我有一个标签,其中包含 QtableView 和几个按钮,例如“上移”和“下移”。所以在“向上移动”按钮按下时,我必须将QTableView 的整行向上移动一步,并将相邻的移动向下移动一步。我想在不再次创建完整模型的情况下实现这一点,因为再次构建整个模型可能需要时间。相反,我只想在视图中向上移动选定的行。
请告诉我实现这一目标的最简单方法。
提前致谢
【问题讨论】:
-
你用的是什么模型类?
-
我正在使用 QStandardItemModel
-
那你就不需要再构造所有的数据了。您只需要交换 2 行。为什么你不能这样做?你试过什么?
-
没有直接交换到行的方法。我在想两种方法,一种是设置排序角色和排序,另一种是使用 SetItem 和 TakeRow 方法(但我不确定是否他们会工作)
-
您可以使用
takeItem()从两行中获取所有项目并将它们存储在临时变量中。之后,您可以使用setItem()在新位置插入项目。这可以接受吗?
标签: qt qtableview