pyside6 如何修改QPlainTextEdit内一行的字体颜色,后续接收到的文本依旧保持黑色
时间: 2025-01-27 08:08:37 浏览: 72
在PySide6中,修改`QPlainTextEdit`内一行的字体颜色可以通过操作文档来实现。`QPlainTextEdit`使用`QTextDocument`来管理文本内容。我们可以通过获取文档中的光标并设置格式来实现这一功能。以下是一个示例代码,展示了如何修改特定行的字体颜色,并确保后续接收到的文本保持黑色:
```python
from PySide6.QtWidgets import QApplication, QPlainTextEdit
from PySide6.QtGui import QTextCharFormat, QTextCursor, QColor
from PySide6.QtCore import Qt
import sys
class MyTextEdit(QPlainTextEdit):
def __init__(self):
super().__init__()
self.setPlainText("Line 1\nLine 2\nLine 3")
self.modify_line_color(1, QColor('red')) # 修改第二行的颜色为红色
def modify_line_color(self, line_number, color):
cursor = self.textCursor()
cursor.movePosition(QTextCursor.Start)
for _ in range(line_number):
cursor.movePosition(QTextCursor.Down)
format = QTextCharFormat()
format.setForeground(color)
cursor.select(QTextCursor.LineUnderCursor)
cursor.mergeCharFormat(format)
if __name__ == "__main__":
app = QApplication(sys.argv)
text_edit = MyTextEdit()
text_edit.show()
sys.exit(app.exec())
```
在这个示例中,我们创建了一个自定义的`QPlainTextEdit`类,并在其中定义了一个方法`modify_line_color`,用于修改特定行的字体颜色。`modify_line_color`方法通过移动光标到指定的行并设置字符格式来实现。
阅读全文
相关推荐


















