QItemSelectionModel选中项字体变色
时间: 2023-09-10 21:06:45 浏览: 135
字体颜色改变
如果你想要选中项字体变色,可以通过 QTreeView 的 itemDelegate() 函数获取到该控件的 delegate 对象,然后在 delegate 对象的 paint() 函数中绘制选中项的字体颜色。
以下是一个示例代码,可以将选中项的字体颜色设置为红色:
```
class MyItemDelegate : public QStyledItemDelegate
{
public:
MyItemDelegate(QObject *parent = nullptr) : QStyledItemDelegate(parent)
{
}
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
{
QStyledItemDelegate::paint(painter, option, index);
if (option.state & QStyle::State_Selected) {
painter->setPen(Qt::red); // 设置字体颜色为红色
painter->setFont(option.font); // 设置字体
painter->drawText(option.rect, Qt::AlignLeft | Qt::AlignVCenter, index.data().toString()); // 绘制文本
}
}
};
// 在使用 QTreeView 控件时,设置 Item Delegate
ui->treeView->setItemDelegate(new MyItemDelegate(this));
```
需要注意的是,以上代码中的 `ui->treeView` 是指 `QTreeView` 控件的对象名,需要根据实际情况进行修改。同时,需要在头文件中导入 `QPainter`、`QStyleOptionViewItem` 和 `QStyledItemDelegate` 类。
阅读全文