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