问题标签 [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.

0 投票
1 回答
1033 浏览

python - 在 PyQt 中透明地获取退格事件

我想检测何时在 QPlainTextEdit 小部件中按下退格键。

我有以下代码:

(在继承自 QPlainTextEdit 的类中)

问题是现在按退格键(或任何其他字符键)不会将字符插入文本框中。我可以检查每个键并这样做,但是,特别是对于大文件,删除最后一个字符可能效率低下、速度慢并导致代码混乱。

有没有更好的方法来做到这一点?

0 投票
0 回答
38 浏览

c++ - 如何检测字符串是否是变量在编写QPlainTextEdit的代码编辑器中?

我正在用QPlainTextEdit编写一个javascript代码编辑器,现在我正在用QCompleter进行代码完成。问题是我不知道明文中哪个字符串是变量。我首先根据关键字检测变量,例如

但是当用户粘贴多行或删除多行,或者用户只删除现有“变量”的单个字符时,它不会正常工作

显然我不希望 QCompleter 同时弹出“变量”和“变量”。任何解决方案?多谢。

相关问题

0 投票
1 回答
131 浏览

c++ - Qt moveCursor 不再改变选择边界

我正在QPlainTextEdit用一种编程语言(Basic)以 , 显示文本,该语言在标识符的末尾可以有一个特定于类型的字符;例如MyString$StartChar@。因此,如果用户通过双击选择这样的标识符,我希望将特定于类型的字符包含在选择中。这是我的代码:

这曾经工作得很好。但是现在我已经升级到 Qt 5.12(我认为是从 Qt 5.4),调用moveCursor不再导致选择包含额外的字符。有谁知道为什么这种行为发生了变化,我能做些什么?

0 投票
3 回答
529 浏览

c++ - 强制 QPlainTextEdit 大写字符

我想在我输入时将所有小写字符转换为QPlainTextEdit. 在QLineEdit我通过验证器做同样的事情,但似乎没有验证器QPlainTextEdit

我试过ui->pte_Route->setInputMethodHints(Qt::ImhUppercaseOnly);了,但它什么也没做,很可能是用错了。

使用我的“自己的”课程有什么更好的选择吗?

0 投票
2 回答
669 浏览

python - QPlainTextEdit 是 RightToLeft 但显示 LeftToRight

我使用QPlainTextEdit并设置了一个视图setLayoutDirection(QtCore.Qt.RightToLeft)。的输出self.plaintxt.isRightToLeft()为 1,但在纯文本视图中,波斯文和英文文本从左侧显示。我的代码中发生了什么?

代码

0 投票
0 回答
214 浏览

c++ - 附加一个非常大的字符串

当我尝试向 QPlainTextEdit 添加一个大 QString(大小:104806123)时,我得到一个异常:C++:std::bad_alloc

我还尝试将 Text 附加到 QPlainTextEdit 中,将数据拆分为许多 QStrings:

但在 570.000 行左右,我得到了 std::bad_alloc。问题不在于 QString,而是当我调用 appendPlainText(QString)

有更好的方法将大字符串添加到 QPlainTextEdit 吗?

0 投票
1 回答
1970 浏览

python - 在 QPlainTextEdit() 中禁用回车(按 Enter 键)

这就是我的示例:

禁用返回

文本区域是一个QPlainTextEdit()对象,因为我希望文本换行到第二行。我认为这是最好的小部件选择。

用户最多只能在此框中输入 90 个字符,因此我不需要大的文本区域。

我想禁用按键 Enter(回车)。我让它工作,但它看起来很hacky,我认为它不会跨平台工作(例如:Mac)。

当然,必须有更好的方法来防止QPlainTextEdit对象中的回车键事件?

我目前的解决方案解释

在下面,您可以看到我正在检查是否IndexError发生,因为当 QPlainTextEdit 框中没有任何内容时会last_value抛出一个。IndexError然后,我得到最后一个字符并询问它是否等于一个新行。如果是,我将重新设置没有新行的文本并将光标移动到末尾。

完整代码最小工作示例:

0 投票
2 回答
2756 浏览

python - 在 QPlainTextEdit 中突出显示部分文本

我在 QPlainTextEdit 中有一个列表,想突出显示特定的行,比如第 5 行。

我查看了各种教程和示例,但 PyQt5 的文档似乎相当稀疏​​。

可行的代码,我想突出显示行。对于另一个小部件的建议,我也很感激。我不想编辑这个列表,只是显示它并突出显示行。

0 投票
0 回答
490 浏览

python - 在复制时从 QPlainTextEdit 获取原始文本

从 QPlainTextEdit 复制时,我想获得没有样式信息的原始文本。目前,当从 QPlainTextEdit 粘贴到 excel 中时,会包含样式信息。我正在使用 PySide2。

这是说明问题的excel图像

我最初将 A 列的背景颜色设置为黄色并粘贴在该列的顶部。

我尝试重新实现 createMimeDataFromSelection,但如果我创建一个新的 QMimeData,设置文本并返回它,程序崩溃而没有错误。经过进一步测试,此方法确实有效,并且在使用 PyQt5 而不是 PySide2 时不会崩溃。也许这是 PySide2 的一个错误。

如果我使用 super() 获取父级的 QMimeData 并使用 setText() 和 setHtml() 覆盖文本,当我复制时,我仍然会得到带有样式的原始文本:

这是一个完整的示例,展示了标准 QPlainTextEdit,一个尝试替换父类提供的 mime 数据,一个尝试创建自己的 mime 数据。

0 投票
1 回答
384 浏览

python - Python PyQt5 打印多色到纯文本编辑

为了使这更容易。我将如何打印到 QPlainTextEdit 列表

为每个单词使用不同的颜色?