【问题标题】:PyQt5 select text across multiple QTextEdit boxesPyQt5 在多个 QTextEdit 框中选择文本
【发布时间】:2018-12-18 13:23:47
【问题描述】:

我正在尝试在 PyQt5 中创建类似的东西: https://www.screencast.com/t/1FikGosKbS

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

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

【问题讨论】:

  • 这个应用可以编辑吗从某个地方。
  • @user9402680 是的,它是 Workflowy,一个笔记应用程序。 workflowy.com/demo/embed

标签: select pyqt pyqt5 qtextedit


【解决方案1】:

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

QTextEdit,QTextDocument,QTextCursor 已用完。

1.了解block

2.使用QTextBlockUserData(如果你愿意的话。)

3.使用QGraphicsItem作为节点。

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

5.要使子节点块状,可以协调块的缩进。

QTextBlock是文档中的只读数据。

您将QTextBlockUserData 设置为块。

如果您选择要拖放的多个块,请使用带有序列的QTextCursormovePosition 方法。

这个应用的节点不能是QTextListFormat,因为我们无法处理鼠标点击样式。但是你可以插入空样式QTextListFormat

节点的真相可能是QGraphicsItem

你可以给它分配每个方块的起始位置,item也可以有方块数据。

很难处理节点和块之间的连接。 必须提前设置QGraphicsView & QGraphicsScene

我在容器上插入了很多数据。

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

我的试用

1.节点和文本

2.到另一页

3.子节点&区块

4.关闭子节点和区块

我的试炼是不完整的,但它会用忍耐来完成。 从逻辑上讲,我想我可以通过这些组合继续前进。 但这会很困难...

这些节点由 QGraphicsItem 组成并分配每个 Blocks。 您必须在编辑期间计算位置并重新计算。

鼠标光标图像在这些图像上被删除。 超出截图范围。

【讨论】:

  • 感谢您的回复。不久前,我为这个项目放弃了 PyQt,并使用 React + Electron,并通过覆盖 onMouseUp、onMouseDown 和 onMouseEnter 事件来实现跨多个节点的选择,以突出显示用户在鼠标单击时通过鼠标悬停“选择”的节点是握住。突出显示的节点只会使用 CSS 将背景变为蓝色,以表明它们被突出显示。然后我还必须实现用于复制和粘贴、删除和拖动的自定义函数,以及在选择节点时应该如何表现。
  • 但是我还在用 PyQt 做其他事情,你的帖子很有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
相关资源
最近更新 更多