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。

posted @ 2023-01-16 10:39  测开星辰  阅读(853)  评论(0编辑  收藏  举报