查询在某个应用程序中在QTableView中显示静态行号

时间:2016-04-01 07:22:11

标签: qt qtableview

我有一个应用程序,其中有一个QWidget。此QWidget使用垂直方向的QSplitter分为两部分。

这两部分是:

  • 左侧的QTreeWidget;

  • 右边的
  • QTableView

QTableView中使用的模型继承自QAbstractTableModel。

当我在QTreeWidget中选择一行时,应更新右侧的QTableView。 QtableView应按升序显示行号,一列应显示对象名称。为了显示行号,我使用QAbstractTablemodel的setHeaderData作为垂直标题 我在使用该功能时遇到了一些问题。

问题
  我还使用QSortFilterProxyModel对对象名称列进行排序。我面临的问题是,当我通过单击列的水平标题对对象名称进行排序,然后选择行时,垂直标题中的行号会发生变化。

在对对象名称列进行排序时,有没有办法在纵向显示行号而不更改?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我的解决方法: 设置两个QTableViews彼此相邻。左边的那个使用未排序的模型。右侧的QTableView使用排序代理模型。 现在在(未排序的)模型中添加一列,返回行+1。 在右表中隐藏此列。在左表中隐藏除此列之外的所有列。 现在你只需要调整UI,所以间距不是问题。 如果右侧的表格滚动,则必须将该事件同步到右侧的表格。