Image 使用鼠标在Qtextedit中调整qt图像大小
我的项目是实现像Word这样的文本编辑器。 除了用鼠标调整图像大小(如Word 2016),其他一切都可以正常工作 如何在QTextEdit中检测图像,如何选择图像,然后用鼠标调整其大小。 我查看了stackoverflow中发布的示例,该示例使用qdialog调整图像大小,但我需要使用鼠标。Image 使用鼠标在Qtextedit中调整qt图像大小,image,resize,qt5,qtextedit,Image,Resize,Qt5,Qtextedit,我的项目是实现像Word这样的文本编辑器。 除了用鼠标调整图像大小(如Word 2016),其他一切都可以正常工作 如何在QTextEdit中检测图像,如何选择图像,然后用鼠标调整其大小。 我查看了stackoverflow中发布的示例,该示例使用qdialog调整图像大小,但我需要使用鼠标。 有什么想法吗?在QTextEdit中有四种渲染方法 1.QImageFormat 这是QTextEdit中最标准的方法。重要的是QTextCursor处理。 2.QTextObjectInterface
有什么想法吗?在
QTextEdit
中有四种渲染方法
1.QImageFormat
这是QTextEdit
中最标准的方法。重要的是QTextCursor
处理。
2.QTextObjectInterface
这是第二种方法,但非常有用。3.
QGraphicsPixmapItem
您必须提前导入QGraphicsView
和qgraphicscene
,但它不受QTextBlock
的限制。它非常方便和自由
4.QPainter drawImage
它最初是用于非交互式的方式。我在这个答案中不使用它
我推荐(1或2)和3个组合
当鼠标单击时
1.在QTextEdit
上渲染图像
2.单击图像
3.光标必须在图像之前或之后移动
4.也就是说,光标位置必须在图像之前或之后
5-a.我认为通过QTextCursor处理可以捕捉图像格式
5-b.如果使用qtexobjectinterface
,则可以捕获“\ufffc”字符
6Imageformat
属于一个字符,因此您可以使用QTextCursor
中的KeepAnchor
标志,通过movePosition
方法选择并捕获图像
光标更正
,并在QTextEdit
上获得位置。
您可以使用光标的位置以及图像的宽度和高度。
您可以使用它们来指定图像
然后,您调用QGraphicsSitems。您可以调用qgraphicscene.addItem()
qgraphicsrecitem
子类中定义控制计算。
你可能想知道计算的方法
这可能是全局对象,因为它们是临时使用的
当鼠标移动时
11.我大致解释一下
如果鼠标单击左侧的矩形项
我想你把鼠标光标移到左边,图像会向右扩展
在MicroSoft Word中,它似乎是同一个控件。总之,您可能不会考虑高度的变化。不用说,您不能更改八个矩形项目的大小
这可能是一个技巧,QGraphicsRectItem.setCursor(QtCore.Qt.PointingHandCursor)
很有帮助
我认为变化的比率是+1或-1是最好的。
至少在一开始,这并不复杂,也不容易理解。
我建议您不要匹配鼠标光标的移动。
最终,用户很难协调图像的大小
QGraphicsRectItem
的宽度和高度。
您可以同时setWidth
和setHeight
setkeepositiononinsert(True)
插入后,`SetKeepositionOnInsert(False)`可能很重要。因为插入后,位置将位于插入文本的后面installEventFilter
。但是如果rectItems是全局的,您可以在QTextEdit
的MouseeEvent处理中调用它们
p、 如果你听不懂我说的话,请随时发表评论。我曾经写过一次答案,但我删除了它,因为我没有接受你的回答。我想你认为我的回答不好,不可理解。但我自己解决了这个问题,因为我也像你一样搜索过这类问题,根据我的经验,目前在网上可能没有答案。如果你想知道答案,请给我一些回复或者把问题的细节写得更清楚。。我离线了一段时间,没有检查你的答案。你能再发一次吗→ QTextImageFormat感谢您的回答,我将尝试实现它