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

时间:2015-08-15 18:34:42

标签: 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似乎没有任何关于此行为的内容。

1 个答案:

答案 0 :(得分:2)

最有可能发生的事情是调用setTextColor会在文档中插入一些不可见的东西来改变颜色。也许它是添加一个开始和结束标记,指定文本的彩色区域并将光标放在这些标记的中间。当你调用moveCursor并跳到最后时,你会跳出这个彩色区域,你的颜色就会停止工作。

第二个例子有效,因为你没有离开彩色区域。