python - 在 PyQt 中,QTextEdit.setTextColor() 在移动光标之前不起作用

标签 python pyqt qtextedit

如果在 moveCursor 方法之后使用 setTextColor 方法设置 QTextEdit 颜色,则不会产生任何效果。

terminal = QTextEdit()
terminal.setTextColor(color)
terminal.moveCursor(QTextCursor.End)
terminal.insertPlainText('Test\n')

但是如果在设置颜色之前移动光标,它就会起作用。

terminal = QTextEdit()
terminal.moveCursor(QTextCursor.End)
terminal.setTextColor(color)
terminal.insertPlainText('Test\n')

为什么会发生这种情况? documentation似乎没有任何关于此行为的信息。

最佳答案

最有可能发生的情况是调用 setTextColor 会在文档中插入一些不可见的内容来更改颜色。也许它添加了一个开始和一个结束标记来指定文本的彩色区域,并将光标放在这些标记的中间。当您调用 moveCursor 并跳转到末尾时,您将跳出该彩色区域,并且您的颜色将停止工作。

第二个示例之所以有效,是因为您没有移出彩色区域。

关于python - 在 PyQt 中,QTextEdit.setTextColor() 在移动光标之前不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027997/

相关文章:

python - 如何解析改变格式的德国日期?

python - Apache 上找不到 Flask 的静态文件

c++ - Qt QTextEdit 只加载一半的文本文件

c++ - 通过 QTextStream 流式传输到 QTextEdit

css - 使用 Qt 固定位置(与 css 效果相同)

python - 复杂 BeautifulSoup 查询

python - Pandas groupby-median 函数用随机数填充空箱

python - 循环中的 QtCore.QObject.connect 仅影响最后一个实例

python - 我正在尝试在 python 中运行 sudo 来打开一个应用程序

python - 尝试在 pyqt5 gui 应用程序中使用 4x4 键盘