12.PyQt5【基本组件】多行输入框-QTextEdit
一、前言
QTextEdit文本输入框可以输入多行文本。
二、学习目标
1.QTextEdit常用方法
2.QTextEdit常用信号
3.QTextEdit组件的应用
三、知识点
1.【QTextEdit常用方法】
方法 | 描述 |
---|---|
setPlainText() | 设置多行文本框的内容 |
toPlainText() | 返回多行文本框的文本内容 |
setHtml() | 设置多行文本框的文本内容为HTML文档,HTML文档是描述网页的 |
toHtml() | 返回多行文本框的HTML内容 |
setReadOnly() | 设置文本框为只读 |
insertPlainText() | 插入文本内容 |
clear() | 清除多行文本框的内容 |
2.【QTextEdit常用信号】
信号 | 描述 |
---|---|
textChanged() | 文本内容发生改变时触发信号 |
selectionChanged() | 选中内容发生改变时触发信号 |
cursorPositionChanged() | 光标位置发生改变时触发信号 |
currentCharFormatChanged(format) | 当前字符格式发送改变时触发信号 |
copyAvailable(bool) | 复制可用时 |
redoAvailable(bool) | 重做可用时 |
undoAvailable(bool) | 撤销可用时 |
3.【QTextEdit组件的应用】
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTextEdit
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体
self.setupUi()
def setupUi(self):
"""页面初始化"""
# 设置窗体大小及标题
self.resize(500, 400)
self.setWindowTitle("QTextEdit组件示例")
# 创建布局
self.layout = QVBoxLayout()
# QTextEdit组件定义
self.text1 = QTextEdit('第一个多行文本', self)
self.text2 = QTextEdit(self)
self.text3 = QTextEdit(self)
# QTextEdit组件设置
self.text1.setReadOnly(True) # text1设置只读
self.text2.setPlainText("第二个多行文本!") # text2设置默认文本
self.text3.setHtml("<font color='red' size='6'><red>第三个多行文本!</font>") # text3设置默认html文本
# QTextEdit关联信号
self.text2.textChanged.connect(self.on_text2_textChanged)
# 将组件添加到布局中
self.layout.addWidget(self.text1)
self.layout.addWidget(self.text2)
self.layout.addWidget(self.text3)
# 为窗体添加布局
self.setLayout(self.layout)
def on_text2_textChanged(self):
"""text2组件槽函数"""
print("text2文本被修改啦!")
if __name__ == '__main__':
app = QApplication(sys.argv)
myMain = QmyWidget()
myMain.show()
sys.exit(app.exec_())
-
关键代码
# QTextEdit组件定义 self.text1 = QTextEdit('第一个多行文本', self) self.text2 = QTextEdit(self) self.text3 = QTextEdit(self) # QTextEdit组件设置 self.text1.setReadOnly(True) # text1设置只读 self.text2.setPlainText("第二个多行文本!") # text2设置默认文本 self.text3.setHtml("<font color='red' size='6'><red>第三个多行文本!</font>") # text3设置默认html文本 # QTextEdit关联信号 self.text2.textChanged.connect(self.on_text2_textChanged)
QTextEdit同样支持两种定义方式,创建了三个多行文本输入框,为text1设置只读,text2设置默认文本,text3设置默认html文本;为text2关联信号,当text2文本发生改变时则执行槽函数on_text2_textChanged。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码