2014-03-04 96 views
0

我正在使用QTextEdit来实现编辑器。我的要求之一是在图像上添加固定位置文本。QTextEdit:如何在图像顶部添加固定位置文本

例如: 我有尺寸图像:300x300。我需要从图像的位置(20,20)开始添加文本,并确保文本不会超出图像的宽度。

类似下面:

Sample output view (pic borrowed from Windows7)

我在想,如果我可以添加一个QGraphicView,我可以适当地添加图像和文本的位置。这可能吗?有没有办法将一个图形元素引入QTextedit?如果不是,那么正确的方法是什么?

+0

你想绘制一个文字在图像上(在预定义矩形)?或者你需要一个带背景图像的编辑器?或者是其他东西? –

+0

图片上的文字(在预定义矩形中)矩形是图片本身的边界 – go4sri

+1

http://qt-project.org/doc/qt-4.8/qpainter.html#drawText-11? –

回答

0

有没有办法将图形元素引入QTextEdit?如果不是,那么正确的方法是什么?

你可以看看另一种方式,并将QTextEdit添加到QGraphicsScene中。图形场景提供了一个QGraphicsProxyWidget来添加标准的Qt小部件。

因此,您可以创建一个QGraphicsScene和QGraphicsView。为图像添加一个QGraphicsPixmapItem,并添加QTextEdit项目,并调用QGraphicsScene :: addWidget,它返回一个QGraphicsProxyWidget,允许您定位,缩放和调整窗口小部件的大小。

或者,您可以从QGraphicsItem开始,从中继承并创建自己的对象,该对象封装了QTextEdit的图像和代理对象。

还有其他的方法来解决这个问题,但我可能会去自定义QGraphicsItem。它也取决于你的规格,但你可以在图形场景中添加文本项目,而不需要QTextEdit,但如果需要的话,你可能必须实现编辑功能。

相关问题