如果在 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/