1. 从QLabel开始:不只是显示文字的“标签”
很多刚接触PyQt5的朋友,第一眼看到QLabel,都觉得它就是个“显示文字”的框,功能简单,没啥好讲的。我以前也是这么想的,直到在一个数据监控项目里,我需要动态更新几十个设备的状态,才发现用好QLabel,界面美观度和用户体验能提升好几个档次。它远不止是setText(“Hello World”)那么简单。
QLabel是PyQt5里最基础的控件之一,属于QtWidgets模块。它的核心工作是展示信息,这些信息可以是纯文本、富文本(HTML)、甚至是一张图片。因为它本身不支持用户直接编辑,所以常被用来做标题、说明、状态提示或者图片容器。我刚开始用的时候,就把它当成一个静态的“牌子”,后来才发现,通过属性和样式表的灵活设置,这个“牌子”能玩出很多花样。
1.1 文本对齐:让界面排版更精致
设置文本对齐,大概是新手遇到的第一个排版小难题。原始文章里提到了alignment属性,有水平(Horizontal)和垂直(Vertical)两个方向。这里我分享一个我踩过的坑:你以为设置了QtCore.Qt.AlignHCenter就能完全居中,结果文字还是紧贴着控件上边缘,看起来怪怪的。
这是因为默认的垂直对齐方式是AlignTop(顶部对齐)。所以,真正的居中对齐,必须是水平和垂直都居中。代码得这么写:
self.label.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter)
这里用到了按位或操作符 |,这是PyQt5里组合不同对齐标志的标准做法。记得要同时导入QtCore模块。
除了代码,在Qt Designer里可视化操作更直观。选中QLabel,在右侧属性编辑器里找到alignment,分别点开horizontal和vertical的下拉菜单选择。我个人的习惯是,对于标题类的标签,用水平居中+垂直居中;对于一段较长的描述性文字,用左对齐+顶部对齐,这样更符合阅读习惯。
1.2 富文本与超链接:让标签“活”起来
QLabel支持简单的HTML标签,这功能太实用了。比如,你想把一段话里的某个关键词标红加粗,用纯文本就得拆成好几个QLabel拼接,麻烦不说,布局还容易乱。直接用HTML就简单多了:
self.label.setText(‘这是一个<font color=“red”><b>非常重要</b></font>的提示信息。’)
注意,这里要用英文的双引号来包裹HTML属性值。这样,“非常重要”四个字就会显示为红色粗体。
超链接功能在制作“关于”窗口或者帮助文档时特别有用。用户点击一下就能打开浏览器访问指定网页,体验很流畅。实现起来就两行代码:
self.label.setText(“<a href=‘https://www.example.com’>访问我们的官网</a>”)
self.label.setOpenExternalLinks(True)
第一行用<a>标签定义链接,第二行setOpenExternalLinks(True)是关键,它允许标签打开外部链接。默认情况下,QLabel里的链接是“死”的,点击没反应。设置之后,文本会自动变成蓝色带下划线,鼠标放上去会变成小手图标。这里有个细节:链接地址的引号,我习惯用单引号包裹在href属性里,而整个字符串用双引号包裹,这样不容易出错。
1.3 图像显示与动态更新:不仅仅是放张图
用QLabel显示图片,主要用setPixmap()方法,参数是一个QPixmap对象。这里有个新手常问的问题:“为什么我的jpg图片显示不出来?” 确实,QPixmap对某些格式的JPG文件支持可能有问题。最稳妥的办法是统一转换成PNG格式,或者使用QImage先加载再转换成QPixmap。
from Py



被折叠的 条评论
为什么被折叠?



