Select PyQt5跨多个QTextEdit框选择文本

Select PyQt5跨多个QTextEdit框选择文本,select,pyqt,pyqt5,qtextedit,Select,Pyqt,Pyqt5,Qtextedit,我试图在PyQt5中创建类似的内容: 我尝试为每个项目符号使用单独的QTextEdit小部件,并覆盖enter键以转到下一个文本框,但我不知道如何使多个QTextEdit小部件可选择(并能够复制粘贴),如示例中所示 如何允许用户通过拖动跨多个QTextEdit框选择文本?或者有更好的方法吗?我不知道这个应用程序是否由Qt制作,但我有一个想法。 也许你已经充分利用了这个应用程序的大部分。。。我无法从你的问题中了解它们。我写我的观点的前提是你根本不知道QText处理 QTextEdit,QText

我试图在PyQt5中创建类似的内容:

我尝试为每个项目符号使用单独的QTextEdit小部件,并覆盖enter键以转到下一个文本框,但我不知道如何使多个QTextEdit小部件可选择(并能够复制粘贴),如示例中所示


如何允许用户通过拖动跨多个QTextEdit框选择文本?或者有更好的方法吗?

我不知道这个应用程序是否由Qt制作,但我有一个想法。 也许你已经充分利用了这个应用程序的大部分。。。我无法从你的问题中了解它们。我写我的观点的前提是你根本不知道QText处理

QTextEdit
QTextDocument
QTextCursor
都得到了充分的利用

1.理解

2.使用
QTextBlockUserData
(如果需要)

3.使用
QGraphicsItem
作为节点

4.要转到其他页面,我们在
QStackedWidget
上添加一个新的
QTextEdit
,或者替换
QTextEdit
QTextDocument

5.要制作子节点块,可以协调块的缩进

QTextBlock
是文档中的只读数据

创建
QTextBlockUserData
,并将其设置为块

如果选择要拖放的多个块,请使用带顺序的
QTextCursor
movePosition
方法

此应用程序的节点不能是
QTextListFormat
,因为我们无法处理鼠标单击样式。但您可以插入空样式
QTextListFormat

节点的真实性可能是
QGraphicsItem

您可以将其分配给每个块的开始位置,并且该项还可以具有块数据

很难处理节点和块之间的连接。 您必须预先设置
QGraphicsView
qgraphicscene

我在容器上插入了许多数据

我们应该用节点或块控制哪个

我的审判

1.节点和文本

2.转到另一页

3.子节点和块

4.关闭子节点和块

我的审判是不完整的,但它将以耐力完成。 从逻辑上讲,我认为我可以逐步使用这些组合,直到达到最佳点。 但这将是困难的

这些节点由QGraphicsItem构成,并分配给每个块。 编辑过程中必须计算位置并重新计算

将删除这些图像上的鼠标光标图像。
它超出了屏幕截图的范围。

此应用程序可以由用户编辑?它似乎是一种只读文档,因为用户只单击节点。似乎待办数据本身是从某处导入和呈现的。@user9402680是的,它是Workflowy,一个记笔记的应用程序。谢谢你的回复。不久前,我放弃了这个项目的PyQt,使用React+Electron,并通过覆盖onMouseUp、onMouseDown和onMouseEnter事件来实现跨多个节点的选择,以突出显示用户在按住鼠标单击时通过鼠标“选择”的节点。高亮显示的节点只需使用CSS将背景变为蓝色,以指示它们高亮显示。然后,我还必须实现自定义功能,用于复制、粘贴、删除和拖动,以及在选择节点时的所有行为。但我仍在使用PyQt处理其他事情,您的帖子很有帮助