QProxyStyle 将 QTreeView 标头与分支对齐

Posted

技术标签:

【中文标题】QProxyStyle 将 QTreeView 标头与分支对齐【英文标题】:QProxyStyle align QTreeView header with branch 【发布时间】:2016-02-26 07:51:36 【问题描述】:

我正在创建一个 QProxyStlye,并希望将第一个标题列与列中的项目对齐。 通常第一列以 (0,0) 开头,并且项目偏移可能的分支指示符的宽度(图像中的红色方块)。

【问题讨论】:

doc.qt.io/qt-5/qtreeview.html#rootIsDecorated-prop - 假 @SaZ 我需要分支指示符空间来绘制指示符,但我想更改标题的对齐方式。在最终的风格中,它看起来很棒,但在 Windows 风格中则不然。 好的,现在我明白了。简单的方法是继承QHeaderView 并覆盖paintSection 方法。我不确定,代表是否有可能。如果你真的想用QProxyStyle 来做这件事,那么你可以研究paintSection 方法的Qt 代码并找到你需要重新实现的样式。 目前我倾向于这个丑陋的解决方案if(hopt->section == 0) // TODO: get width of a branch indicator rect.adjust(30,0,0,0); 【参考方案1】:

QHeaderView 创建自定义委托,覆盖绘制方法。

【讨论】:

以上是关于QProxyStyle 将 QTreeView 标头与分支对齐的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有列标题的 QTreeView 重做为 QTableView?

如何将起点目录设置为 QTreeView?

将复选框列添加到树左侧的 QTreeView 的方法?

QTreeView 使用示例 - 如何将子节点添加到现有项目?

右键单击 QTreeView 内的 QHeaderView

自定义 QTreeView 项目