网站首页 > 编程文章 正文
多行文本输入框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-09-11 Qt开发-文本编辑器中的数据存取(qt文本编辑器代码)
- 2024-09-11 Qt数据库应用15-通用数据库同步(qt的数据库操作)
- 2024-09-11 开源|一个基于QT设计串口调试工具
- 2024-09-11 PyQt: QAbstractButton开关按钮与互斥的用法
- 2024-09-11 第6篇 基础(六)实现Qt文本编辑功能
- 2024-09-11 实战PyQt5: 003-PyQt的信号和槽机制简介
- 2024-09-11 Qt开发经验小技巧181-185(qt软件开发)
- 2024-09-11 Qt开发经验总结之武林秘籍(qt开发程序)
- 2024-09-11 Qt状态机框架介绍(二)(状态机编程实例及适用范围)
- 2024-09-11 Qt编写安防视频监控系统9-自动隐藏光标
你 发表评论:
欢迎- 05-142014年最流行前端开发框架对比评测
- 05-14七爪源码:如何使用 Next.js 构建 Shopify 店面
- 05-14Web 前端怎样入门?
- 05-14我为什么不建议你使用框架
- 05-14推荐几个好用的React UI 框架
- 05-14PDFsharp:强大的 .NET 跨平台 PDF 处理库
- 05-14一组开源免费的Web动画图标,荐给需要的设计师和程序员
- 05-14salesforce 零基础学习(二十九)Record Types简单介绍
- 最近发表
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)