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 列 - 不能设置小宽度的主要内容,如果未能解决你的问题,请参考以下文章

css中table列宽怎样动态设置

QT:怎么设置QTableView默认序号的大小

QTableView设置常见设置总结

不同列宽的QTableView

Qtablewidget设置颜色交替

QT QTableView 使用委托