我还没有找到确切的问题。
我有一张图片,为了示例,它可能是空白的,或者包含我想要添加花哨字幕的内容。我想在图片的顶部添加文本编辑工具(类似于Photoshop)。
我正在考虑子类化QGraphicsScene
并在按下文本放置按钮时在场景上放置子类QTextEdit
对象。然后,当您单击此对象时,除了编辑文本外,还可以使用其他文本编辑工具 - 因此您可以将文本部分设置为粗体,斜体,修改颜色,大小等。然后您就可以更改对象的位置 - 我认为默认情况下可以在QGraphicsScene
中使用。对于背景QBrush
,会有背景图片。
这是一个合理的解决方案吗?
也许有任何现成的例子,但我还没有找到它们。
答案 0 :(得分:1)
我的解决方案
文字项目
对于文本项,我使用QGraphicsScene
和子类QGraphicsTextItem
。对于背景图片,我使用了带有QGraphicsRectItem
的{{1}}和使用QBrush
方法的加载图片。
编辑此子类QGraphicsTextItem中所选文本的部分内容:
QImage
使用QTextCharFormat
将QGraphicsTextItem
应用于我的子类QGraphicsTextItem::textCursor().mergeCharFormat(...)
。这样我就可以在选择中更改格式,例如粗体,斜体等。
更多东西: 为了平移和缩放场景,我使用了Vpicaver的优秀指南,其中包含来自http://www.qtcentre.org/wiki/index.php?title=QGraphicsView:_Smooth_Panning_and_Zooming的源代码