前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用PyQt5做图形界面(二)文本组件:QLabel、QLineEdit、QTextEdit

用PyQt5做图形界面(二)文本组件:QLabel、QLineEdit、QTextEdit

作者头像
ExASIC
发布2023-02-17 20:26:12
2.4K0
发布2023-02-17 20:26:12
举报
文章被收录于专栏:ExASIC

今天介绍文本相关的三个组件:QLabel、QLineEdit、QTextEdit。

三者的区别是:QLabel一般用来显示提示性的文本或者说明,用户不可以直接修改内容。QLineEdit用来收集用户输入(单行文本,不能换行)。而QTextEdit用来收集用户输入的一大段文字。

需求:

做一个BUG提交的界面,用户可以输入BUG的标题和描述,点击按钮后,获取用户填写的信息,并显示在终端里。

分析:

我们先来做一些准备,提前学习几个函数。对于文本来说,最常用的就“设置文本”和“获取文本”。

QLabel和QLineEdit,setText(string)为设置文本,text()为获取文本。

而QTextEdit功能较为复杂,支持纯文本模式,也支持富文本模式(即html、插入图片、设置不同的格式等)。我们今天只会用到toPlainText()来获取QTextEdit的文本。

整理如下:

  • QLabel.setText(string) 设置标签的文本
  • QLineEdit.text() 获取单行文本框中的文字
  • QTextEdit.toPlainText() 获取多行文本框中的文字

代码实现:

在《用PyQt5做图形界面(一)Hello world》的基础上,添加几个组件:

代码语言:javascript
复制
# BUG标题
label1 = QLabel()
label1.setText('Bug Title:')
vbox.addWidget(label1)

edit1 = QLineEdit()
vbox.addWidget(edit1)

# BUG描述
label2 = QLabel()
label2.setText('Bug Description:')
vbox.addWidget(label2)

edit2 = QTextEdit()
vbox.addWidget(edit2)

实现提交按钮的处理函数。从QLineEdit和QTextEdit中取出文字,并print出来。

代码语言:javascript
复制
def submit_handle():
    bug_title = edit1.text()
    bug_description = edit2.toPlainText()
    print('Bug title is {},\nDescription is\n{}'.format(
        bug_title, 
        bug_description))

最后,在界面上创建按钮,并连接到submit_handle()函数:

代码语言:javascript
复制
button = QPushButton('Submit')
button.clicked.connect(submit_handle)
vbox.addWidget(button)

效果展示:http://mpvideo.qpic.cn/0bc3ruabqaaarqanvexd2nrvbdoddcgqagaa.f10002.mp4?

总结:

在学习和使用pyqt5基本组件时,可以查阅pyqt5的官方类库(https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/index.html#module-PySide2.QtWidgets),找到相类组件可操作的函数列表,并阅读相关函数的说明。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ExASIC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档