4

我正在创建一个保存对象发送服务数据的应用程序。

我用 来创建它,我想用它来显示Qt类型的模型。QStandardItemModelQtableView

QtableView向我展示了左侧的线路水平。如果可能,我想删除它或隐藏它。

我也有一个标题的问题,我想将其水平分成两部分,然后将底部的相应部分垂直分成两部分。这些划分的原因是我有两个开头相似的标题(通信日期和通信编号)

谢谢你的回复,因为这对我来说真的很重要。

在此处输入图像描述

4

1 回答 1

7

这种类型QHeaderView不存在,但我们可以为它创建一个类,我们必须创建一个继承QHeaderView并主要重写该方法的类,该方法paintSection是负责绘制部分的方法QHeaderView

但是要为任何类型的视觉设计进行通用项目,我们必须保留每个部分的位置和大小信息,为此我们将创建一个模型,以了解为什么会覆盖类我建议您阅读以下内容链接

解释每个方法的逻辑很广泛,所以只放置实现上述的项目的链接并描述每个类的任务:

  • TableHeaderItem:负责保存每个item的信息,除了label之外主要是rowspan和columnspan。

  • GridTableHeaderModel:模型类,提供对每个项目的访问,以便我们可以编辑和读取每个项目

  • GridTableHeaderView:此类是自定义QHeaderView的,其中主要方法被覆盖以获得所需的外观。

  • GridTableView(可选):是一个 TableView,它具有直接使用 GridTableHeaderView 的方法。

输出:

在此处输入图像描述

注意:要隐藏垂直标题,只需使用以下hide()方法:

horizontalHeader()->hide();
于 2017-09-29T12:59:53.677 回答