网站首页 > 教程文章 正文
多行文本输入框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_())
运行程序之后,弹出的窗口如下:
好了,多行文本框的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
猜你喜欢
- 2024-12-17 Qt使用教程:创建Qt Quick UI表单(三)
- 2024-12-17 一小例子,了解 TCP 通讯流程 | Qt 示例
- 2024-12-17 如何使用QT编写自己的串口调试助手软件
- 2024-12-17 Qt pro文件中的常用宏说明 qt pro宏定义
- 2024-12-17 Qt Creator 源码学习笔记01,初识QTC
- 2024-12-17 QT学习:statusBar的使用,创建控件添加到statusBar上面
- 2024-12-17 一口气,了解 Qt 的所有 IPC 方式 | Qt 速学
- 2024-12-17 Qt线程QThread开启和安全退出 qt线程怎么安全关闭
- 2024-12-17 Qt之使用socket实现远程控制 qt使用mqtt
- 2024-12-17 C/C++编程笔记:编写完成了一个C/C++程序,如何做一个界面出来?
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)