如何删除 QTableView 中的标题?

Posted

技术标签:

【中文标题】如何删除 QTableView 中的标题?【英文标题】:How to Remove the Header in QTableView? 【发布时间】:2013-09-10 07:50:42 【问题描述】:

如下图所示,如何删除不需要的标题部分?

我的表格只能显示 4 个列标题。它不应显示整个标题部分。请帮助删除显示在第 4 列之后的标题部分(突出显示的标题部分)。

【问题讨论】:

是QTableWidget还是QTableView?你为这个视图使用模型吗?是否可以显示模型的代码? 是QTableView。这是我的模型的代码。 myStandardItemModel = new QStandardItemModel(0,4,this); myStandardItemModel->setHorizo​​ntalHeaderItem(0, new QStandardItem(QString("1"))); myStandardItemModel->setHorizo​​ntalHeaderItem(1, new QStandardItem(QString("2"))); myStandardItemModel->setHorizo​​ntalHeaderItem(2, new QStandardItem(QString("3"))); myStandardItemModel->setHorizo​​ntalHeaderItem(3, new QStandardItem(QString("4"))); table->setModel(myStandardItemModel); 谢谢。嗯,我对此进行了更多调查,但没有找到比 thuga 建议的更好的解决方案,即对最后一节进行分层。我还认为以您想要的方式隐藏最后一部分甚至是不可能的。我在 Qt3 中看到过这样的表格,但在后来的 Qt 实现中从未见过。 【参考方案1】:

从另一个答案中的 cmets 来看,我想知道“它不应该显示整个标题部分”是否意味着您要完全删除标题。

如果是这样,方法如下:

myTable->horizontalHeader()->hide();

【讨论】:

需要#include <QHeaderView>【参考方案2】:

您可以使用stretchLastSection 属性拉伸最后一列以占用所有可用空间:

myTable->horizontalHeader()->setStretchLastSection(true);

或者你可以用样式表隐藏它:

myTable->setStyleSheet("QHeaderView background-color: transparent;");

【讨论】:

是的..这就是我想要的。但是,我只想知道,有没有其他方法可以删除 Header 部分。 @NewMoon 我认为没有什么比用样式表隐藏它更简单的了。您可能需要调整标题的大小,使其与列的总宽度相同。如果您的列设置为固定宽度,那么它相当简单,但我仍然会使用样式表。 @NewMoon 如果你不是在寻找简单的方法,你可以创建自己的小部件,基于 QHeaderView @thuga:我认为 NewMoon 可能想要完全删除标题,在这种情况下,有比使用样式表更简单的方法:***.com/a/37994662/1450294 @MichaelScheper 否。在他的问题中,他仅突出显示了拉伸部分,并表示 请帮助删除显示在第 4 列之后的标题部分(突出显示的标题部分)。

以上是关于如何删除 QTableView 中的标题?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 QTableView 有空白边距,我该如何删除它们?

QT中如何删除QTableView自动生成的数字序号列?

可编辑 QTableView 中的 Pandas df:删除复选框

底层模型更改时如何在 QTableView 中禁用自动滚动到顶部?

如何使用计时器正确更新 QTableView?

QTableView 行删除