pyqt5如何高亮选择item(第23天28天学会PyQt5)
多行文本输入框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方面的干货了。赶紧来围观啊!!!
#python##程序员##好平台好讲师##桌面##热门#
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com