1

我还没有找到一个确切的问题。

我有一张图片,为了示例,它可能是空白的,或者包含我想添加一个花哨的标题的东西。我想在图片顶部添加文本编辑方式(类似于 Photoshop)。

我正在考虑在按下文本放置按钮时对场景进行子类化QGraphicsScene和放置子类化对象。QTextEdit然后,当您单击此对象时,除了编辑文本之外,还可以使用其他文本编辑工具 - 因此您可以将部分文本设置为粗体、斜体、修改颜色、大小等。然后您就可以更改对象的位置 - 我认为QGraphicsScene默认情况下可以使用。对于背景QBrush,会有背景图片。

这是一个合理的解决方案吗?

也许有任何现成的例子,但我还没有找到它们。

4

1 回答 1

1

我的解决方案

文本项: 对于文本项,我使用QGraphicsScene了一个子类QGraphicsTextItem。对于背景图片,我使用了一个QGraphicsRectItemwith aQBrush和一个加载图片的 usingQImage方法。

要编辑此子类 QGraphicsTextItem 中选定文本的部分内容: QTextCharFormat应用于我的子类QGraphicsTextItem,使用QGraphicsTextItem::textCursor().mergeCharFormat(...). 通过这种方式,我可以仅在所选内容上更改格式,例如粗体、斜体等。

还有一些事情: 为了平移和缩放场景,我使用了 Vpicaver 提供的出色指南,其中包含来自http://www.qtcentre.org/wiki/index.php?title=QGraphicsView:_Smooth_Panning_and_Zooming的源代码

于 2012-03-15T16:02:17.327 回答