PyQt5多行文本框QTextEdit文本改变事件

问题描述

文本内容一旦改变则触发事件

在这里插入图片描述




解决方案

使用装饰器定义信号和槽函数,结合文本改变事件 textChanged




代码

import sys
from PyQt5.QtCore import pyqtSlot, QMetaObject
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayout, QLabel


class MainWindow(QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.label = QLabel(self)
        self.edit = QTextEdit()
        self.edit.setObjectName("edit")
        layout = QVBoxLayout()
        layout.addWidget(self.label)
        layout.addWidget(self.edit)
        self.setLayout(layout)
        QMetaObject.connectSlotsByName(self)

    @pyqtSlot()
    def on_edit_textChanged(self):
        text = self.edit.toPlainText()
        self.label.setText(text)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MainWindow()
    win.show()
    sys.exit(app.exec_())




参考文献

  1. PyQt之单行文本框(QLineEdit)控件中的常用方法和信号
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章