检测graphicsitem boundingRect何时超出场景rect

时间:2014-04-22 07:20:53

标签: qt qgraphicsitem

我在用户点击图形视图时添加了一个qgraphicsTextitem,我将使用setTextInteractionFlags(Qt :: TextEditorInteraction)设置图形文本的编辑模式;

但问题是用户可以编辑文本,文本超出视口可见区域或场景矩形。

用户输入的文本应限制在sceneRect内,我如何在图形框架中完成。

当textitem文本在中间开始并且输入的文本退出sceneRect时,我必须移动文本pos左侧。

1 个答案:

答案 0 :(得分:1)

您必须明确设置sceneRect的{​​{1}}。否则,它会自动增长。你会希望它是固定的大小。

然后,您需要继承QGraphicsScene,或从头开始创建自己的QGraphicsItem。

也许如果您覆盖QGraphicsTextItem,您可以调用基座virtual QRectF boundingRect () const,检查它是否在场景矩形之外,然后使用boundingRect将项目移到左侧。

请记住,边界矩形在项目坐标中,您需要考虑项目位置以获取场景坐标。