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。