QT移除表格的水平表头

3
我有一个函数叫做setHorizontalHeader,它通过使用setHorizontalHeaderItem逐个添加标题项来向表格中添加标题。如果我想删除一个标题,应该使用哪个函数呢? 看起来takeHorizontalHeaderItem()很适合,但是它只是移除了该项而没有将其删除。 在对所有项目调用takeHorizontalHeaderItem之后,我得到了带有数字的标题。 我需要完全删除标题(数据+单元格)- 如何正确实现?

你想要完全隐藏标题行吗? - Mat
@Mat 是的,我想要隐藏它。 - YAKOVM
1个回答

9
QTableView 中,horizontalHeader 是一个像其他小部件一样的东西。如果你想要隐藏它,只需调用它的hide()成员函数(也是一个槽)。
 view->horizontalHeader()->hide();

这将隐藏整个标题栏,不会销毁或改变所包含的标题项。
当您想再次显示标题时,只需使用show()。标题项将保持与hide()之前相同(除非在此期间更改了它们)。
 view->horizontalHeader()->show();

(显然,这也适用于垂直标题。)

我应该先使用takeHorizontalHeaderItem吗? - YAKOVM
1
不,这将对整个标题行进行操作,而不是对单个标题项进行操作。您可以保留标题项不变,它们只是不再显示(如果您在标题上调用show(),它们将再次显示)。 - Mat
好的。如果在执行一些流程后,我想再次显示标题,我应该使用某种“取消隐藏”吗? - YAKOVM
4
仔细看一下我之前的评论,那里有一个非常重要的提示 :) - Mat

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