QTableView 列 - 不能设置小宽度
Posted
技术标签:
【中文标题】QTableView 列 - 不能设置小宽度【英文标题】:QTableView columns - can't set small width 【发布时间】:2019-12-13 12:20:02 【问题描述】:我有两个带有自己简单模型的 QTableView。 进行以下操作后:
tv1->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
tv1->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
tv1->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents);
tv1->resizeColumnsToContents();
我有这张照片:
这是我想要的:
我尝试过的:
在我的模型中的 headerData 中创建 sizehintrole 并返回我自己的大小; 将 setSectionResizeMode 更改为 ResizeToContent 通过“setColumnWidth”设置每列的宽度(有和没有调整大小模式) 用我想要的尺寸制作我自己的代理,用 sizehint 重载 设置样式表,内边距为 0px;到 QTableView、QTableView::section、QTableView::item 使用“header->setDefaultSectionSize”这些都不起作用。我非常绝望地使用 QPainter 从零开始绘制表格,或者按照每个源文件查看实际大小。但在此之前,我将不胜感激。
【问题讨论】:
你能减小QTableView
本身的大小吗?也许在设计器中设置最大宽度并在其旁边放置一个水平扩展垫片。
Spacer 已经存在,减小 tableview 的大小只会剪切单元格@drescherjm
【参考方案1】:
您可以尝试将水平标题的最小部分大小设置为零,这样:
tv1->horizontalHeader()->setMinimumSectionSize(0);
(文档here)。
【讨论】:
谢谢。我阅读了整个文档,但我的脑海中没有任何联系,很着急。以上是关于QTableView 列 - 不能设置小宽度的主要内容,如果未能解决你的问题,请参考以下文章