PyQt6 UI templates resource converter
Project description
pyqt6rc
Script to convert resource paths generated by QT6 designer.
PyQt6 does not provide pyrcc6 script to convert resources.
In current PyQt6 implementation, files created by pyuic6 scripts using Qt resources has wrong path.
This script is converting .ui files into .py files and using importlib to fix resource path.
There are multiple solutions to this problem:
- Native python3.7+ solution using importlib [Use pyqt6rc].
- Use of importlib_resources, which is third party library. [Use pyqt6rc with -c option]
- Adding resource path using QtCore.QDir.addSearchPath() and modifying generated prefixes. [Converter will be added in the future]
Conversion
Generated template using pyuic6:
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/icon1.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
Generated template using pyqt6rc:
from importlib.resources import path
icon = QtGui.QIcon()
with path("myPackage.resources.icons", "icon1.png") as f_path:
icon.addPixmap(QtGui.QPixmap(str(f_path)), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
Generated template using pyqt6rc (-c, --compatible):
from importlib_resources import path
icon = QtGui.QIcon()
with path("myPackage.resources.icons", "icon1.png") as f_path:
icon.addPixmap(QtGui.QPixmap(str(f_path)), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
Usage examples
Package structure example
myPackage
│ __init__.py
│
└───resources
| | __init__.py
│ │ image1.png
│ │ image2.png
│ │ resources.qrc
| | ...
| |
| └───icons
│ │ __init__.py
│ │ icon1.png
│ │ icon2.png
│ │ ...
│
└───templates
│ template1.ui
│ template2.ui
Convert all .ui files located in templates directory
pyqt6rc /myPackage/templates -p myPackage
Convert template1.ui
pyqt6rc /myPackage/templates/template1.ui -p myPackage
Convert template1.ui and save it in /tmp directory
pyqt6rc /myPackage/templates/template1.ui -p myPackage -o /tmp
Convert all .ui files located in templates directory using importlib_resources
pyqt6rc /myPackage/templates -p myPackage -c
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.