PyQt QTextEdit 详解
QTextEdit
是 PyQt 中用于编辑和显示多行文本的组件。它允许用户输入、编辑和格式化文本,并支持丰富的文本编辑功能。以下是关于 QTextEdit
的一些详细解释和示例:
创建 QTextEdit
对象:
要创建一个 QTextEdit
对象,只需实例化它,然后将其添加到布局或窗口中。例如:
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayout
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
text_edit = QTextEdit()
layout.addWidget(text_edit)
window.setLayout(layout)
window.show()
app.exec_()
设置和获取文本内容:
可以使用 setPlainText
方法设置文本内容,使用 toPlainText
方法获取文本内容。例如:
text_edit.setPlainText("Hello, PyQt5!")
text = text_edit.toPlainText()
设置只读和可编辑状态:
使用 setReadOnly
方法来设置文本编辑框是否为只读状态。例如:
text_edit.setReadOnly(True) # Make it read-only
text_edit.setReadOnly(False) # Make it editable
设置字体和格式:
使用 setFont
方法可以为文本内容设置字体,也可以使用 setFontPointSize
来设置字体大小。要更改选定文本的字体和格式,可以使用 QTextCursor
和 QTextCharFormat
,如前面的示例所示。
格式化文本:
QTextEdit
支持丰富的文本格式化功能,例如粗体、斜体、下划线、颜色、对齐等。可以通过在文本编辑框中选择文本,然后使用工具栏或编程方式应用这些格式。
from PyQt5.QtGui import QTextCursor
cursor = text_edit.textCursor()
char_format = QTextCharFormat()
char_format.setFontWeight(QFont.Bold)
cursor.mergeCharFormat(char_format)
滚动到特定位置:
使用 verticalScrollBar
和 horizontalScrollBar
方法可以获取滚动条,从而实现对 QTextEdit
的滚动控制。
信号和槽:
QTextEdit
支持多种信号和槽,用于处理文本变化、光标移动、文本选择等事件。
text_edit.textChanged.connect(my_text_ch