QTableView行可以拖动的问题

时间:2021-07-05 15:47:15
在QTableView中实现行可以拖动,比如讲第一行拖动到其他行,不新增数据。就是对每一行上移或者下移操作,通过拖动实现。

7 个解决方案

#1


急求!!!!!!!!!!

#2


可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

#3


引用 2 楼 u013466477 的回复:
可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

#4


引用 3 楼 Marcelxx 的回复:
Quote: 引用 2 楼 u013466477 的回复:

可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

...那你换成horizontalHeader()

#5


引用 4 楼 u013466477 的回复:
Quote: 引用 3 楼 Marcelxx 的回复:

Quote: 引用 2 楼 u013466477 的回复:

可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

...那你换成horizontalHeader()

谢谢,移动实现了,但是移动后垂直表头中的1,2,3,4序号,也跟着变了
比如 1 2 3三行,移动后,垂直表头的序号就变成了1 3 2.请问可以怎么设置,让表头序号不变。

#6


引用 5 楼 Marcelxx 的回复:
Quote: 引用 4 楼 u013466477 的回复:

Quote: 引用 3 楼 Marcelxx 的回复:

Quote: 引用 2 楼 u013466477 的回复:

可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

...那你换成horizontalHeader()

谢谢,移动实现了,但是移动后垂直表头中的1,2,3,4序号,也跟着变了
比如 1 2 3三行,移动后,垂直表头的序号就变成了1 3 2.请问可以怎么设置,让表头序号不变。

这个应该可以,或许有更好的方法。
QTableWidget:QTableWidget::setVerticalHeaderLabels(const QStringList & labels);
QTableView:QStandardItemModel::​setVerticalHeaderLabels(const QStringList & labels);

#7


这部分的源码发给我参考一下呗

#1


急求!!!!!!!!!!

#2


可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

#3


引用 2 楼 u013466477 的回复:
可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

#4


引用 3 楼 Marcelxx 的回复:
Quote: 引用 2 楼 u013466477 的回复:

可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

...那你换成horizontalHeader()

#5


引用 4 楼 u013466477 的回复:
Quote: 引用 3 楼 Marcelxx 的回复:

Quote: 引用 2 楼 u013466477 的回复:

可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

...那你换成horizontalHeader()

谢谢,移动实现了,但是移动后垂直表头中的1,2,3,4序号,也跟着变了
比如 1 2 3三行,移动后,垂直表头的序号就变成了1 3 2.请问可以怎么设置,让表头序号不变。

#6


引用 5 楼 Marcelxx 的回复:
Quote: 引用 4 楼 u013466477 的回复:

Quote: 引用 3 楼 Marcelxx 的回复:

Quote: 引用 2 楼 u013466477 的回复:

可以试一下
verticalHeader()->setSectionsMovable(true);
verticalHeader()->moveSection(from, to);

是实现行移动,不是列移动,是行的上移和下移。

...那你换成horizontalHeader()

谢谢,移动实现了,但是移动后垂直表头中的1,2,3,4序号,也跟着变了
比如 1 2 3三行,移动后,垂直表头的序号就变成了1 3 2.请问可以怎么设置,让表头序号不变。

这个应该可以,或许有更好的方法。
QTableWidget:QTableWidget::setVerticalHeaderLabels(const QStringList & labels);
QTableView:QStandardItemModel::​setVerticalHeaderLabels(const QStringList & labels);

#7


这部分的源码发给我参考一下呗