我一直在与QGraphicsTextItem
合作。我目前在一个场景中布局,每个场景都描绘了一个文本的物理页面。现在,我正在覆盖keyReleaseEvent
函数,以重新分配在所有页面中键入的文本。这个问题是当我用setPlainText
设置文本时,光标会移回到textitem
的开头,该QGraphicsTextItem
被设置为场景的焦点项。
正如您可以想象的那样,这在输入时会出现问题,尤其是在另一个页面而不是一个焦点上,这也使得用于剪切和复制的键盘快捷方式根本不起作用。
有没有办法设置{{1}}的文本而不重置光标/移动光标?
答案 0 :(得分:3)
对于你的问题,有一种方法我认为你可以解决它,但我不确定它是最好的。这是:
您可以在textCursor()
上致电QGraphicsTextItem
以获取QTextCursor
的{{1}}。使用此光标,您可以通过调用QGraphicsTextItem
来获得其位置。然后保留此值,更新文本,然后通过创建新的position()
来设置光标的位置,并使用QTextCursor
设置其位置。
我希望这会有所帮助。
编辑添加示例:
setPosition(int pos, MoveMode m = MoveAnchor)
我没有对此进行测试,我按照我认为的方式编写了它。