QScintilla 可以用来创建一个类似于 word 文档的页面吗 [已关闭]

can QScintilla be used to create a page similar to that of a word document [closed]

提问人:corry findel 提问时间:11/16/2023 更新时间:11/16/2023 访问量:29

问:


我们不允许向读者、工具、软件库等寻求推荐的问题。您可以编辑问题,以便用事实和引文来回答。

7天前关闭。

这是我几天前问的另一个问题的续集。我正在使用 pyqt5 和 QScintilla 尝试创建一个文字处理器,但收效甚微。现在,我正在尝试创建一个在水平或垂直平面上都不是无限的文本编辑框,类似于Word文档的标准页面,简单,有限,并且能够在填充时创建更多。

我用 pyqt5 尝试过这个,但没有结果,因为它缺乏执行我想要的能力,现在我用 QScintilla 尝试了同样的事情,但同样缺乏结果。我希望有人可能尝试过同样的事情,并能提供他们是如何做到的,因为我这边再多的代码也无济于事,我最接近的是使用 Wrapword 功能骑水平滚动条。

此外,如果 QScintilla 根本不可能,那么完全可以使用另一个 Python 库吗?PyQt5 是一个按钮 = 事情发生类型库,如果发生的事情不一定需要来自 PyQt5,它可能完全是另一个库。

我迫不及待地想继续阅读 QScintilla 文档,无论它在哪里存在,然后寻找其他可以创建我想要的逐页格式的库。

python pyqt5 qscintilla

评论

0赞 ekhumoro 11/16/2023
QScintilla 主要只是 Scintilla 的包装器,它是为源代码编辑而设计的。与 QTextEdit 一样,它不支持所见即所得的分页。我认为你需要问问自己,你到底有多需要这个功能。打印(可能包括转换为其他文档格式,如PDF)主要需要分页 - 正如我之前指出的,Qt的打印支持已经提供了该功能。否则,所见即所得的分页只不过是一种装饰性特征。
0赞 musicamante 11/17/2023
@corryfindel 在考虑一个模块/框架/插件等时,你应该的第一件事就是对它进行深入研究,然后最终决定实际尝试它(以及选择还是放弃它)。QScintilla 是 Scintilla 的一个端口,它的官方页面(上面链接)在第一段中清楚地说明了这一点:它是一个源代码编辑组件。代码编辑器必须允许代码读写变得容易,但将代码放在可打印的页面中与此完全无关(无论马斯克可能会荒谬地问你什么)。
0赞 musicamante 11/17/2023
@corryfindel我已经向你解释了这一点:如果你想在 PyQt 中使用这种功能,你只能通过创建自己的 QAbstractTextDocumentLayout 来实现它。另外,请注意,虽然 QPlainTextEdit 使用公共 QPlainTextDocumentLayout,但它的绘制完全是在 QPlainTextEdit 函数中实现的,因此即使您对该类进行了子类化,您仍然需要正确(并且一致地)实现绘制。如果您想要完整的富文本功能(不同的字体、样式、表格等),则必须完全编写自己的子类实现。paintEvent()
0赞 musicamante 11/17/2023
@corryfindel 对不起,我可能看起来很烦人或居高临下,但事情就是这样。如前所述,Qt并没有提供这样的开箱即用功能,因为QTextDocument API是针对通用开发人员使用的:由于文本布局管理绝非易事,而且每个进一步的功能都会成倍增加复杂性,因此他们(正确地)决定不提供该方面进行编辑。实现它的唯一方法是对它和 Qt 有足够的知识和经验。这没有捷径可走:你想要一个复杂的行为,你必须自己做。
0赞 corry findel 11/17/2023
shmanks 寻求帮助!

答: 暂无答案