如何在QTableView中去除表头?

8

如下图所示,我该如何移除不需要的表头部分?

具有4列的QTableView

我的表格只需显示四个列标题,不应显示整个表头部分。请帮忙移除第四列后显示的表头部分(已高亮显示的表头部分)。


是 QTableWidget 还是 QTableView?您在此视图中使用模型吗?是否可以显示模型的代码? - vahancho
这是一个 QTableView。这是我的 Model 代码。myStandardItemModel = new QStandardItemModel(0,4,this); myStandardItemModel->setHorizontalHeaderItem(0, new QStandardItem(QString("1"))); myStandardItemModel->setHorizontalHeaderItem(1, new QStandardItem(QString("2"))); myStandardItemModel->setHorizontalHeaderItem(2, new QStandardItem(QString("3"))); myStandardItemModel->setHorizontalHeaderItem(3, new QStandardItem(QString("4")));table->setModel(myStandardItemModel); - New Moon
谢谢。嗯,我对此进行了更深入的调查,但并没有找到比thuga建议的更好的解决方案,即拉伸最后一部分。我也认为按照您想要的方式隐藏最后一部分甚至是不可能的。我在Qt3中看到过这样的表格,但从未在后来的Qt实现中看到过。 - vahancho
2个回答

28

通过您在另一个答案中的评论,我想知道当您说“它不应该显示整个标题部分”时,是否意味着您要完全删除标题。

如果是这样,下面是如何操作:

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

7
需要包含头文件 #include <QHeaderView> - Sturm

6

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

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

或者您可以通过样式表将其隐藏:

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

是的,那就是我想要的。但是,我只想知道是否有其他方法可以删除标题部分。 - New Moon
@NewMoon 我认为没有比使用样式表来隐藏它更简单的方法了。您可能需要调整标题的大小,使其与列的总宽度相同。如果您的列设置为固定宽度,则相当简单,但我仍然建议使用样式表。 - thuga
@NewMoon 如果您不想走捷径,可以基于QHeaderView创建自己的小部件。 - Dmitry Sazonov
@thuga:我认为NewMoon可能想要完全删除标题,如果是这样的话,有一种比使用样式表更简单的方法:https://dev59.com/tnbZa4cB1Zd3GeqPIalE#37994662 - Michael Scheper
@MichaelScheper 不是的。在他的问题中,他只强调了被拉伸的部分,并且他说“请帮忙删除第四列后显示的标题部分(已经被标出的标题部分)”。 - thuga
@thuga:嗯,是的,你说得对。我想这就是看不到森林只看到树木的问题。☺ - Michael Scheper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接