多行文本输入框QTextEdit可以显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平个垂直滚动条,还可以用来显示HTML文档。
多行文本框常用事件类型如下表所示。
方法 | 描述 |
setPlainText() | 设置多行文本框的文本内容 |
toPlainText() | 返回多行文本框的文本内容 |
setHtml() | 设置多行文本框的文本内容为HTML文档 |
toHtml() | 返回多行文本框的HTML内容 |
clear() | 清除多行文本框的内容 |
QApplication类有一个静态方法clipboard()返回QClipboard对象,对剪切板对象的引用,任何类型的MimeData都可以从剪切板复制或粘贴。
QClipboard类中的常用方法如表。
方法 | 描述 |
clear() | 清空剪切板的内容 |
setImage() | 将QImage对象复制到剪切板中 |
setMimeData() | 将MIME数据设置为剪切板 |
setPixmap() | 从剪切板中复制Pixmap对象 |
setText() | 从剪切板中复制文本 |
text() | 从剪切板中检索文本 |
程序清单:
import sys from PyQ import QApplication, QWidget, QDesktopWidget, QTextEdit, \QPushButton, QHBoxLayout, QVBoxLayout, QLabel, QMessageBox # 继承QWidget class TextEditWidget(QWidget): text_edit = None def __init__(self): super().__init__() () def init_ui(self): # 垂直布局 v_box = QVBoxLayout() # 建议 suggest_box = QHBoxLayout() = QTextEdit() .setPlaceholderText("你的建议,是我们前进的动力") (QLabel("建议:")) () (1, 1) v_box.addLayout(suggest_box) # 复制、粘贴、清空和提交按钮 button_box = QHBoxLayout() copy_btn = QPushButton("复制") co) paste_btn = QPushButton("粘贴") ) clear_btn = QPushButton("清空") clear_b) submit_btn = QPushButton("提交") submit_b) bu(copy_btn) bu(paste_btn) bu(clear_btn) bu(submit_btn) bu(QLabel(), 1) bu(40, 0, 0, 0) v_box.addLayout(button_box) (v_box) # 调整窗口大小 (900, 500) # 窗口居中 () # 窗口标题 ("多行文本输入框的应用") # 显示窗口 () # 拷贝 def copy(self): text = .toPlainText() # 剪切板的文本 clipboard = QA() cli(text) # 粘贴 def paste(self): # 剪切板的文本 clipboard = QA() # 以Html的格式输出多行文本框,字体红色,字号6号 .setHtml()) # 清空 def clear(self): .clear() # 提交 def submit(self): text = .toPlainText() if () == "": .setFocus() QMe(self, "内容为空", "建议空空如也,请输入你的宝贵意见", QMe) else: QMe(self, "提交成功", "你的宝贵意见,我们收到了,谢谢你", QMe) # 实现居中 def center(self): f = () c = QDesktopWidget().availableGeometry().center() f.moveCenter(c) ()) if __name__ == "__main__": app = QApplication) w = TextEditWidget() ())
运行程序之后,弹出的窗口如下:
好了,多行文本框的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
#python##程序员##好平台好讲师##桌面##热门#