Python PyQt5 图形界面美化实战:背景、透明与字体设置
本文详解 PyQt5 图形界面的美化技巧,重点讲解如何使用 QSS 样式表添加软件背景图片、控制控件透明度以及调整字体大小。通过具体代码示例,演示如何防止背景图干扰子类控件,实现半透明效果及无边框设计,并对比手动与代码设置字体的方法,帮助开发者提升软件界面视觉效果。
前言
本次学习聚焦于图形设计界面的美化处理。众所周知,使用 QtDesigner 默认生成的界面美观度有限,因此在实际开发中,对界面进行美化是必要的环节。接下来将具体介绍美化的实现方法。
首先需明确美化的作用位置。
1 软件背景的添加

最简便的方式是在设计界面时,直接在样式(style)中使用 CSS 进行美化。
#
添加背景
QWidget {
border-image:url(C:/Users/DELL/Pictures/Saved Pictures/1.jpg);
}
#下面的防止背景干扰其他控件
QTextBrowser {
border-image:url();
}
QLineEdit {
border-image:url();
}
QComboBox {
border-image:url();
}
QLabel {
border-image:url();
}
QPushButton {
border-image:url();
}
其中 url 后跟随的是背景图片在本地计算机中的存储路径(务必选择尺寸合适的图片作为背景)。

虽然添加背景的代码仅需一行,但在设计界面时,由于子类控件继承自父类,父类的样式会被子类继承。为防止背景图片对其他控件产生不良影响,需添加以下代码:
函数名对应的是具体的控件名称。
通过上述写法,可确保该控件的背景不受父类背景图的干扰。
控件名 {
border-image:url();
}
若设置背景时,其他子类控件不进行此类设置,会出现什么情况?


观察可见,子类控件均继承了父类的背景图,导致视觉效果杂乱无章。
2 背景透明化
同样在 style 中设置,但需注意以下几点:控件名称必须准确,数值 180 代表透明度。设置为 0 时完全透明,设置为 255 时完全不透明。
此处设置为 180,相当于半透明效果。color 代表框内字体的颜色。
由于该控件用于输出信息,后续从框内输出的信息字体颜色均会随之改变。.border 用于设置边框,此处设置为 none 表示无边框。

接下来通过 Python 运行程序,观察输出字体的颜色效果。
未输入密码时,状态框无任何显示。

当输入密码错误时,输出的字体颜色发生改变。

3 字体大小设置
字体设置包含两种方法。
方法一:直接手动选择。

方法二:在 style 中使用 QSS 进行美化。

4 控件的背景颜色
若无需设置透明背景,则需为控件添加背景颜色。

总括
本文介绍的是基础美化方法,实际上 QSS 的美化功能十分强大。建议若对软件界面要求较高,仍应使用 QSS 进行美化,这样效果更佳,但需具备一定的 QSS 基础。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













