【问题标题】:How to Remove the Header in QTableView?如何删除 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 实现中从未见过。

标签: qt qt5 qtableview qt4.8


【解决方案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 可能想要完全删除标题,在这种情况下,有比使用样式表更简单的方法:stackoverflow.com/a/37994662/1450294
  • @MichaelScheper 否。在他的问题中,他仅突出显示了拉伸部分,并表示 请帮助删除显示在第 4 列之后的标题部分(突出显示的标题部分)。
猜你喜欢
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 2015-04-28
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多