如何删除 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->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); 谢谢。嗯,我对此进行了更多调查,但没有找到比 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 中的 Pandas df:删除复选框