资源的加载
给控件加上图标 1.内置图标 2.自定义资源文件 3.Rcc的使用(基于designer)
4.如果获取资源文件
rcc的使用,基于xml文件
内置图标
from PySide6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget, QLineEdit, QToolBox, QMainWindow, QPushButton,QStyle
from PySide6.QtCore import Qtclass MyWindow(QWidget):def __init__(self):super().__init__()self.lb = QLabel()self.lb.setPixmap(self.style().standardPixmap(QStyle.StandardPixmap.SP_DialogSaveButton))self.mainLayout = QVBoxLayout()self.mainLayout.addWidget(self.lb)self.setLayout(self.mainLayout)if __name__ == '__main__':app = QApplication([])try:window = MyWindow()window.show()except FileNotFoundError as e:print(e)except RuntimeError as e:print(f"Error loading UI: {e}")app.exec()
自定义资源文件
把资源全部转换为二进制py文件 ,中间的转换规定QRC
Qt Designer中 Rcc的使用,不需要手动敲xml.
如何使用:
我使用的是PyCharm这个要自己配置
PyCharm中添加Pyrcc工具(qt designer 的.qrc资源文件转成py文件)
在“File—>Settings—>Tools—>External Tools”中点击“+”号,添加外部工具;
1. Program中填入“pyrcc5.exe”的路径,如:C:\ProgramData\Anaconda3\Scripts\pyrcc5.exe 2. Parameters中填入$FileName$ -o $FileNameWithoutExtension$_rc.py; 3. Working directory中填入$FileDir$。
注意第二步中生成的py文件后缀是 _rc.py
"rc"的作用是在含有资源文件路径的UI文件生成py文件时, 会自动生成 ’ import xxqrc_rc’ 的代码;因此在第二步中转换直接添加_rc, 就不用改UI转换的py文件代码了
from PySide6.QtGui import QPixmap
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QWidget, QLineEdit, QApplication, QHBoxLayout, QPushButton, QLabel
import yjy_rcclass MyWindow(QWidget):def __init__(self):super().__init__()self.lb = QLabel()self.lb.setPixmap(QPixmap(':/images/验证码1.png'))self.lb.setScaledContents(True)self.mainLayout = QHBoxLayout()self.mainLayout.addWidget(self.lb)self.setLayout(self.mainLayout)if __name__ == '__main__':app = QApplication([])try:window = MyWindow()window.show()except FileNotFoundError as e:print(e)except RuntimeError as e:print(f"Error loading UI: {e}")app.exec()
即便你把图片移走,图片也依然显现,因为图片实际上已经被编码到py文件中了
它运行就会被加载到内存中我们只需要遵循它特殊的标记(😕…)即可使用
任何文件都被加载到里面
我们也不需要写xml了 只需要会使用designer即可.