问题标签 [qplaintextedit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 从 QPlainTextEdit 读取大量文本
我正在尝试将 QPlaintextedit 小部件用作文本编辑器,到目前为止效果很好,使用它我可以输入大量文本,并且 UI 不会冻结或卡顿。我想我会突破界限,看看会发生什么。
基本要点是使用我的编辑器我可以编写伪代码,然后解析代码以查找错误。如果没有错误,解析会根据输入文本吐出一些 xml。最后,我得到了一个很好的描述文本的 xml 文档。本质上,我已经设法将伪代码转换为 xml 文件。
这工作得相当好,但编辑器中的文本越多,它使用的内存就越多。现在我设法将大约 750k 行文本粘贴到我的编辑器中,当需要解析它时,我首先读取文本,然后将整个文本发送到解析器。为此,我这样做:
这为我提供了编辑器中的所有文本,我可以将其发送到解析器,然后将其转换为 xml 文件(如果没有发现错误)
现在编辑器中有 750k 行文本,toPlainText()方法不能很好地工作,实际上我只是内存不足。
我的问题是我应该如何处理大量文本才能解析它。
我考虑过(未尝试过)的一件事是逐块(或逐行)读取文本,解析每一行并将其转换为 xml,但我仍然必须处理返回的 xml,将生成的 xml 保留为在解析整个编辑器文本之前,内存中的每一行/块仍然可能会耗尽内存
我无法想象这仅与 QPlainTextEdit 小部件有关,但通常当在单个文件中有大量“代码”/文本说 1M 甚至 10M 行“代码”时,如何阅读并解析所有 10M 行?
对于我的示例,我在 Windows 上使用 python 2.7 和 pyqt4.8
qt - 我可以延迟/捆绑对 QPlainTextEditor.textChanged 事件的反应吗?
我有一个用于我编写的建模语言的小型 IDE,在 PyQt/PySide 中实现,并且正在尝试实现一个代码导航器,让您可以跳转到正在编辑的文件中的不同部分。
当前的实现是:(1)连接到 QPlainTextEditor.textChanged,(2)任何时候进行更改,(草率地)解析文件并更新导航器窗格
它似乎工作正常,但我担心这可能会导致较慢系统上的大文件出现重大性能问题,特别是如果将来有更多内容连接到 textChanged。
我的问题:这里有没有人实现了对事件的延迟反应,以便在短时间内多个事件(即击键)只触发一次更新(比如每秒一次)?有没有合适的 QT 方式来做到这一点?
谢谢,迈克尔
c++ - 如何在 QPlainTextEdit 中覆盖撤消/重做
我是 QPlainText 编辑的子类,我希望能够拦截撤消/重做命令,以便我可以实现自定义功能。
我意识到我可以使用 setUndoRedoEnabled 禁用撤消/重做功能,并且可以检测到 Ctrl+Z 和 Ctrl+Y 按键。但是,这似乎不是最好的跨平台方式。
有什么建议吗?
python - Python:从 Qt Designer 创建的 QPlainTextWidget 获取击键
我需要从 Qt Designer 创建的表单中读取键入到 QPlainTextWidget 中的击键。
我知道我可以用 阅读整个结果文本QPlainTextWidget.toPlainText()
,但我需要在输入字母时单独阅读它们。(我正在为摄影师编写一个文件重命名程序,并希望向用户显示他们在文本框中输入的新文件名。我使用他们的条目作为文件名的基本名称。)
我尝试使用 将子例程连接到文本框self.txtFilename.keyPressDown.connect(self.DiplayNewFilename)
,但这会产生错误,因为 keyPressDown 不是插槽。
我在网上读到子类化可以创建一个解决方案,但我不知道该怎么做,或者将子类化代码放在我的整体代码中的什么位置。我的程序是一个单一表单应用程序,它使用我在 Qt Designer 中创建的 GUI 表单。我想创建一个灵活的解决方案,让我可以在我的主要 Python 文件中添加编码解决方案,而不是编辑 Qt Designer 生成的 GUI 代码。
我当前的代码只有一个类(用于主窗口)。我会将新的子类化代码放在哪里——在这个现有的类中,还是作为一个新类?我该怎么称呼它?
我正在运行 Ubuntu 16.04、Python 3 和 Qt 4。photoOrg_MainWindow.Ui_MainWindow
下面的代码是由 Qt Designer 创建的表单。txtFilename
是我要捕获其击键的文本小部件。
干杯,非常感谢您的智慧!
TL/DR:有没有办法从 Qt Designer 中创建的文本小部件访问文本框击键?
到目前为止,这是我的代码的精髓:
python - PyQt QPlainTextEdit: How to replace right-click with key combination
How do I substitute "right-click" in the following snippet with a key combo (for example Ctrl-S)? I searched google and Qt manuals but still have no idea how to do it. I am new to Qt. Any help will be greatly appreciated.
(P.S. to @ekhumoro: I can't seem to @you in your answer to the "PyQt: How to insert text at the cursor in QTableView" question. I used your idea here. But I'd like to use key combination or a button.)
c++ - QPlainTextEdit - setViewportMargins,受保护
我有一个简单的文本编辑应用程序 - QPlainTextEdit,由 qt 设计师创建。我只需要从 mainwindow.cpp setViewportMargins。但我收到以下错误消息 - void QAbstractScrollArea::setViewportMargins(int, int, int, int)' 受到保护。
代码:
有没有办法做到这一点?
qt - QPlainTextEdit: à è é ì ò 应该在它们被输入时变成“a' e' i'...”
我正在使用 QtCreator 编写一个简单的文本编辑器,但我需要像“à è é ì ò”这样的字母在输入时会变成“a' e' e' i' o'”......有办法吗?