Python Qt GUI设计入门PyQt5 的资源调用
Posted 肆拾伍
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Qt GUI设计入门PyQt5 的资源调用相关的知识,希望对你有一定的参考价值。
前言
前面讲了PyQt5 GUI应用的整个程序框架以及信号槽函数的使用,但是还没有介绍各种资源文件的使用,比如图标、音频等资源可能在程序中需要被调用。虽然可以可以一股脑的全部放到同一目录下,但是在文件较多的时候显得很乱,而且在打包使用的时候还需要把资源文件都放到一起。本篇文章介绍如何在PyQt5中使用资源文件,这里以设置窗体图标以及按键图标为例。
一、简单的创建一个UI文件
简单创建一个GUI窗口,不设置信号和槽函数,只是为了后面放置一下图标。
还是和上一章一样的步骤:
二、创建资源文件
名称可以自己设置,但是会影响后面编译时的代码,下面会讲。打开资源文件如下图所示,点击添加,修改前缀:
添加文件,可以选择几张图片放置到这个路径下面。
三、编译窗体文件和资源文件
保存两个批处理文件:
pyrcc5 res.qrc -o res_rc.py # 这个是编译资源文件 这里要注意编译后的文件名必须是 原名称_rc.py
pyuic5 -o MyWidget.py widget.ui # 这个是编译ui文件
运行后得到两个py文件:
要是打开这个资源文件编译出来的py文件可以发现里面已经保存了资源文件里面的所有数据,就不需要再将所需要用到的文件放到目录里去了。
四、封装类调用
和之前一样,重新定义一个类来调用这个自动生成的模板类,代码如下:
import sys
from PyQt5.QtWidgets import QWidget,QApplication
from PyQt5.QtGui import QIcon
from MyWidget import Ui_Widget
class QMyWidget(QWidget):
def __init__(self):
super(QMyWidget, self).__init__()
self.ui = Ui_Widget()
self.ui.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
icon = QIcon(":/icons/tech.png") # 这里调用了图片数据,需要标注路径,路径就是之前在资源文件里面定义的prefix
form = QMyWidget()
icon2 = QIcon("me.png")
form.setWindowIcon(icon)# 设置窗体图标
# form.setWindowIcon(icon2)
form.show()
sys.exit(app.exec_())
效果图:
总结
本文介绍了如何使用资源文件来管理程序所需要用到的数据,直接将所有数据都保存在生成的py文件里面,这样就不用把文件都放到目录里面,方便程序打包。当然,也可以在主目录里面新建一个资源文件夹专门来管理用到的资源。现在GUI设计额核心内容已经讲解完了,再就需要逐步熟悉各个窗口类的使用方法,包里面的各种模块的内容都需要慢慢学习,用多了就会了。
以上是关于Python Qt GUI设计入门PyQt5 的资源调用的主要内容,如果未能解决你的问题,请参考以下文章