QTreeView单元格选择突出显示调整大小

时间:2019-11-27 04:30:13

标签: qt

是否可以自定义QTreeView项的焦点矩形大小?我已经查看了QStyledItemDelegate的paint()事件的源代码,并且在其中查询了textRect,但是我没有找到调整焦点矩形大小的方法,它只绘制了一部分包含文本的单元格,我需要聚焦矩形填充整个单元格有帮助吗?

单元格焦点示例

1 个答案:

答案 0 :(得分:0)

默认选择突出显示取决于当前应用程序样式。在Windows上是局部的,这就是其他Windows应用程序的行为。使用Fusion样式(Linux上的默认设置)时,选择突出显示区域已覆盖整个矩形。在Mac上不确定。

无论如何,它可以通过在项目委托中设置的样式选项轻松控制。我们需要做的就是设置一个标志,幸运的是,样式选项的初始化函数是虚拟的。对于某些样式,这是相同的标志,set by default。试试这个项目代表:

class HighlightDelegate : public QStyledItemDelegate
{
  public:
    using QStyledItemDelegate::QStyledItemDelegate;

  protected:
    void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const override
    {
      QStyledItemDelegate::initStyleOption(option, index);
      option->showDecorationSelected = true;
    }
};