如何在QListView中更改QString项的颜色

时间:2016-01-08 20:36:15

标签: c++ qt

我的模型为QListView,如果我执行model->data(idx);,则返回QvariantQVariant(QString, "Colorful text")。我的任务是编辑Colorful text的颜色。

我想像model->setData(idx, *dunno what put here*, Qt::EditRole);一样使用smth 我希望我需要将颜色描述放在*dunno what put here*的位置,但我不知道如何。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

为了从model->data(idx)中提取文字颜色,您使用角色Qt::ForegroundRole作为额外的parameter来返回QVariant v

然后,您可以将QVariant对象值检查为整数,例如

int c = v.value<int>();

最后通过

将新的修改后的颜色设置回模型中
v.setValue(c);
model->setData(idx, const QVariant & value, Qt::ForegroundRole);