多行文本输入框QTextEdit可以显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平个垂直滚动条,还可以用来显示HTML文档。

多行文本框常用事件类型如下表所示。

方法

描述

setPlainText()

设置多行文本框的文本内容

toPlainText()

返回多行文本框的文本内容

setHtml()

设置多行文本框的文本内容为HTML文档

toHtml()

返回多行文本框的HTML内容

clear()

清除多行文本框的内容

QApplication类有一个静态方法clipboard()返回QClipboard对象,对剪切板对象的引用,任何类型的MimeData都可以从剪切板复制或粘贴。

QClipboard类中的常用方法如表。

方法

描述

clear()

清空剪切板的内容

setImage()

将QImage对象复制到剪切板中

setMimeData()

将MIME数据设置为剪切板

setPixmap()

从剪切板中复制Pixmap对象

setText()

从剪切板中复制文本

text()

从剪切板中检索文本

程序清单:textedit.py

import sys from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QTextEdit, \QPushButton, QHBoxLayout, QVBoxLayout, QLabel, QMessageBox # 继承QWidget class TextEditWidget(QWidget): text_edit = None def __init__(self): super().__init__() self.init_ui() def init_ui(self): # 垂直布局 v_box = QVBoxLayout() # 建议 suggest_box = QHBoxLayout() self.text_edit = QTextEdit() self.text_edit.setPlaceholderText("你的建议,是我们前进的动力") suggest_box.addWidget(QLabel("建议:")) suggest_box.addWidget(self.text_edit) suggest_box.setStretch(1, 1) v_box.addLayout(suggest_box) # 复制、粘贴、清空和提交按钮 button_box = QHBoxLayout() copy_btn = QPushButton("复制") copy_btn.clicked.connect(self.copy) paste_btn = QPushButton("粘贴") paste_btn.clicked.connect(self.paste) clear_btn = QPushButton("清空") clear_btn.clicked.connect(self.clear) submit_btn = QPushButton("提交") submit_btn.clicked.connect(self.submit) button_box.addWidget(copy_btn) button_box.addWidget(paste_btn) button_box.addWidget(clear_btn) button_box.addWidget(submit_btn) button_box.addWidget(QLabel(), 1) button_box.setContentsMargins(40, 0, 0, 0) v_box.addLayout(button_box) self.setLayout(v_box) # 调整窗口大小 self.resize(900, 500) # 窗口居中 self.center() # 窗口标题 self.setWindowTitle("多行文本输入框的应用") # 显示窗口 self.show() # 拷贝 def copy(self): text = self.text_edit.toPlainText() # 剪切板的文本 clipboard = QApplication.clipboard() clipboard.setText(text) # 粘贴 def paste(self): # 剪切板的文本 clipboard = QApplication.clipboard() # 以Html的格式输出多行文本框,字体红色,字号6号 self.text_edit.setHtml(clipboard.text()) # 清空 def clear(self): self.text_edit.clear() # 提交 def submit(self): text = self.text_edit.toPlainText() if text.strip() == "": self.text_edit.setFocus() QMessageBox.warning(self, "内容为空", "建议空空如也,请输入你的宝贵意见", QMessageBox.Ok) else: QMessageBox.information(self, "提交成功", "你的宝贵意见,我们收到了,谢谢你", QMessageBox.Ok) # 实现居中 def center(self): f = self.frameGeometry() c = QDesktopWidget().availableGeometry().center() f.moveCenter(c) self.move(f.topLeft()) if __name__ == "__main__": app = QApplication(sys.argv) w = TextEditWidget() sys.exit(app.exec_())

运行程序之后,弹出的窗口如下:

pyqt5如何高亮选择item(第23天28天学会PyQt5)(1)

好了,多行文本框的内容就说到这了,关注我,下一节更精彩。

码字不易,你的关注和转发是对我最大的鼓励,谢谢!

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!

#python##程序员##好平台好讲师##桌面##热门#

,