PyQt5常用控件大全(详尽方法 + 实例操作,持续更新中…)

PyQt5常用控件大全(详尽方法 + 实例操作,持续更新中…)

最近更新时间:2023-03-12 09:58

1. Label:标签控件

1.1 简介

标签控件主要用于显示用户不能编辑的文本,标识窗体上的对象(例如:给文本框、列表框添加,描述信息等)。它对应PyQt5中的QLabel类,Label控件在本质上是QLabel类的一个对象。

在Qt Designer设计器中,它的图标如下图所示:

1.2 设置标签文本

有2种方法可以设置标签控件显示的文本:

方法1,直接在Qt Designer设计器的属性编辑器中设置它的text属性。如下图所示:

方法2,通过Python代码进行设置:

# 通过setText()方法将标签控件的显示内容设为“hello world”

self.label.setText('hello world')

1.3 设置标签控件内文本的对齐方式

PyQt5中支持设置标签中文本的对齐方式,主要用到alignment属性。在Qt Designer设计器的属性编辑器中展开alignment属性,可以看到有2个值,分别为Horizontal(水平的)和Vertical(垂直的)。

其中,Horizontal表示水平对齐,取值有4个,如下表所示:

取值

说明

AlignLeft

左对齐

AlignHCenter

水平居中对齐

AlignRight

右对齐

AlignJustify

两端对齐(效果同AlignLeft)

在Qt Designer设计器中的位置如下图所示:

不同取值的效果如下图所示:

以上是在属性编辑器中直接设置其属性的方法,除此之外,还有2种方法:

方法2:我们单击窗口中的Label控件,然后再单击右键菜单中的“改变多信息文本”,弹出一个编辑文本的窗口,在这个窗口的顶栏中有4种对齐方式可以设置,从左到右分别是:左对齐,中央对齐,右对齐,自动调整。

方法3:Python代码设置,写法都是一样的,只需要修改末尾最后一个单词即可,具体示例代码如下:

# AlignLeft:左对齐

self.label.setAlignment(QtCore.Qt.AlignLeft)

# AlignHCenter:水平居中对齐

self.label.setAlignment(QtCore.Qt.AlignHCenter)

# AlignRight:右对齐

self.label.setAlignment(QtCore.Qt.AlignRight)

# AlignJustify:两端对齐(效果同AlignLeft)

self.label.setAlignment(QtCore.Qt.AlignJustify)

代码运行效果如下图所示(为方便辨识,我将标签控件的背景色改成了粉色):

可以看到,它们都是在顶部左对齐、水平居中对齐、右对齐,而且是贴边的,这样很不美观,也不是我们想要的结果。

所以就需要结合Vertical了,Vertical是用来设置标签文本的垂直对齐方式,取值有3个。如下表:

取值

说明

AlignTop

顶部对齐

AlignVCenter

垂直居中对齐

AlignBottom

底部对齐

在Qt Designer设计器中的位置如下图所示:

不同取值的效果如下图所示:

可以看到,Vertical是上中下变化,而Horizontal是左中右变化。所以只要将它们2个结合起来,就能实现真正的居中。示例代码如下:

# 水平垂直居中

self.label.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter)

代码运行效果如下图所示:

1.4 设置文本换行显示

假设将标签文本改为“路虽远行则将至,事虽难做则必成”,在标签宽度不足的情况下,系统会默认只显示前面部分文字。遇到这种情况时,我们就需要用到换行显示了。

换行显示是标签控件的属性之一,在Qt Designer设计器的属性编辑器中,将wordWrap属性后面的复选框选中即可实现换行显示。如下图:

当然也可以用Python代码实现:

# 通过QLabel类的setWordWrap()方法将文本设为换行显示

self.label.setWordWrap(True)

1.5 为标签设置超链接

为Label标签设置超链接时,可以直接在QLabel类的setText()方法中使用HTML中的标签设置超链接文本,然后将Label标签中的setOpenExternalLinks()方法设置为True,以便允许访问超链接,示例代码如下:

# 设置跳转链接和超链接文本(注意双引号和单引号)

self.label.setText(" 百度一下,你就知道 ")

# 启用跳转

self.label.setOpenExternalLinks(True)

代码运行后,标签内的文本会变成蓝色,并且带有下划线。当你单击文本后,则会立即跳转到目标网址。

1.6 为标签设置图片

为Label标签设置图片时,需要使用QLabel类的setPixmap()方法,该方法中需要有一个QPixmap对象,表示图标对象。示例代码如下:

# 导入QPixmap类

from PyQt5.QtGui import QPixmap

# 通过setPixmap()方法将名为abc的图片在标签内显示出来

self.label.setPixmap(QPixmap('abc.png'))

代码运行后效果如下图(为提高辨识,标签提前设置了水平布局,所以覆盖了整个窗口):

需要注意的是,该图片文件为png格式,并且放置在代码的同级路径下。另外,在PyQt5中暂不支持该方法显示jpg格式的图片,你可以通过其它工具先将格式转换成png,然后再显示。

1.7 为标签设置气泡提示信息

气泡提示就是当你把光标移动到某个控件上时,会弹出一个提示框。光标移开时,提示框又会自动消失,多数用于解释说明。写在这里只是想告诉你有这么个方法,而不仅局限于标签控件哦~

# 使用该方法需要导入2个模块:QToolTip和QFont

from PyQt5.QtWidgets import QToolTip

from PyQt5.QtGui import QFont

# 设置气泡提示内容为“这是李白写的诗”

self.label.setToolTip('这是李白写的诗')

# 设置提示文本的字体为微软雅黑,字号为12

QToolTip.setFont(QFont('微软雅黑', 12))

代码运行效果如下图所示:

2. LineEdit:单行文本框

2.1 简介

LineEdit是单行文本框,可以从字面意思理解,即:它只能输入单行字符串。它在Qt Designer设计器中的图标如下图所示:

更多尼泊尔内容

新手买树莓派的时候要注意什么
casino365sport365

新手买树莓派的时候要注意什么

🗓️ 09-15 👁️ 4532
Coolpad/酷派 8721白 移动4G 双卡双待 超长待机
天王手表电池多少钱
注册送365元可提款

天王手表电池多少钱

🗓️ 09-08 👁️ 3225
《魔兽世界》8.15奶骑特质推荐
3658188

《魔兽世界》8.15奶骑特质推荐

🗓️ 09-22 👁️ 3908
智能手機處理器排名
注册送365元可提款

智能手機處理器排名

🗓️ 08-03 👁️ 6286
多合一在线视频下载器
casino365sport365

多合一在线视频下载器

🗓️ 07-17 👁️ 2355
苹果iPad软件怎么删除?这个方法最彻底!
注册送365元可提款

苹果iPad软件怎么删除?这个方法最彻底!

🗓️ 07-10 👁️ 4865
壹板壹世界——华为M3平板试用报告
casino365sport365

壹板壹世界——华为M3平板试用报告

🗓️ 08-03 👁️ 5823
拯救你的刘海屏!MacBook 必备的图标栏神器 Ice
casino365sport365

拯救你的刘海屏!MacBook 必备的图标栏神器 Ice

🗓️ 09-06 👁️ 1825