【python】PyQt5中富文本框QTextEdit的详细教程与应用实战
PyQt5 中的 QTextEdit
是一个功能强大的富文本编辑控件,它不仅可以显示和编辑纯文本,还支持 HTML 格式的文本,以及各种文本格式设置,如字体、颜色、对齐方式等。这使得 QTextEdit
在构建文本编辑器、日志显示器、消息框等应用时非常有用。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit
app = QApplication(sys.argv)
# 创建一个 QTextEdit 实例
textEdit = QTextEdit()
# 设置窗口标题
textEdit.setWindowTitle("QTextEdit 示例")
# 显示窗口
textEdit.show()
sys.exit(app.exec_())
textEdit.setText("这是纯文本")
textEdit.setHtml("<h1>这是一个标题</h1><p>这是一段普通文本</p>")
text = textEdit.toPlainText()
html = textEdit.toHtml()
font = textEdit.currentFont()
font.setPointSize(12)
font.setBold(True)
textEdit.setCurrentFont(font)
color = QtGui.QColor(255, 0, 0) # 红色
textEdit.setTextColor(color)
textEdit.setAlignment(Qt.AlignCenter)
cursor = textEdit.textCursor()
cursor.insertText("插入的文本")
image = QtGui.QImage("image.png")
cursor.insertImage(image)
textEdit.undo()
, textEdit.redo()
QTextDocument
提供的方法textEdit.setReadOnly(True)
textEdit.setLineWrapMode()
, textEdit.setTabStopWidth()
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QFontDialog, QColorDialog
from PyQt5.QtGui import QFont, QColor
class TextEditor(QWidget):
def __init__(self):
super().__init__()
self.textEdit = QTextEdit()
self.initUI()
def initUI(self):
# ... 其他界面初始化代码
# 连接信号槽
self.textEdit.setFontFamily.connect(self.setFont)
self.textEdit.setTextColor.connect(self.setColor)
def setFont(self):
font, ok = QFontDialog.getFont()
if ok:
self.textEdit.setFont(font)
def setColor(self):
color = QColorDialog.getColor()
if color.isValid():
self.textEdit.setTextColor(color)
# ... 其他代码
QTextEdit 是 PyQt5 中一个非常强大的控件,它为我们提供了丰富的功能来处理文本。通过灵活运用这些功能,我们可以构建出各种各样的文本编辑应用。
更多详细内容,请参考 PyQt5 的官方文档。
如果你有更具体的问题,欢迎随时提问!
例如,你可以问我:
我将尽力为你解答。