如何更改QGraphicsTextItem的颜色
我有一个场景,里面有多个(QGraphicsTextItem)对象,我需要控制它们的颜色。请问怎么才能改变一个QGraphicsTextItem的颜色呢?有没有什么办法?我已经尝试了三天了,求助!
谢谢大家!
2 个回答
2
setDefaultTextColor(col) 是一个方法,它的意思是“把未格式化文本的颜色设置为 col”。不过文档里对“未格式化文本”这个词解释得不太清楚。我觉得它的意思是:“这个项目里所有没有被特别样式化的内容。”
这些内容是一个 QTextDocument。
你可以用 QTextCursor 来给文档的一部分添加样式。你不能直接给整个 QTextDocument 添加样式,只能给用 QTextCursor 选中的那部分添加样式(不过你可以选择整个文档)。
你可以通过 mergeCharFormat(QTextCharFormat) 方法来给 QTextCursor 添加样式。
QTextCharFormat 有以下几种方法:
- foreground().setColor(QColor)
- setForeground(QBrush)
- setTextOutline(QPen)
前景色是一个 QBrush,它可以用来绘制很多东西,包括“文本”(更准确地说,是字符的填充颜色?)
有一个小细节是,某些新建的 QBrush 默认是 QBrushStyle.NoBrush,这意味着它是透明的,即使你用 setColor() 设置了颜色。
10
我觉得你可以通过调用这个方法来改变文字颜色:
void QGraphicsTextItem::setDefaultTextColor ( const QColor & col );
你可以在这里找到一个例子。
或者在你的Qt助手里搜索一下Diagram Scene Example。