PyQt 应用程序 rcc 转换后的图像 raspbian (Raspberry Pi OS)
PyQt application rcc converted image not found in raspbian (Raspberry Pi OS)
我正在开发一个在 Windows 和 Linux 上运行的跨平台应用程序(在我的例子中是 Raspbian)。我已使用 C:\Python37\Scripts\pyside2-rcc.exe tests.qrc -o tests_rc.py
将所有图像转换为单个文件。我的 tests.qrc
文件结构是这样的:
<RCC>
<qresource prefix="images">
<file>images/Slider_1m.png</file>
<file>images/Slider_2m.png</file>
<file>images/Slider_3m.png</file>
</qresource>
</RCC>
转换为 tests_rc.py
后在主脚本中编码如下:
self.SLIDER.setText(QCoreApplication.translate("SLIDER",u"<html><head/><body><p align=\"center\"><img src=':/images/images/Slider_1m.png'/></p></body></html>", None))
完美加载到 windows 应用程序中,不再需要原始图像文件。
但是在 raspbian 中,这种图像不会加载,我必须这样定义位置:
self.SLIDER.setText(QCoreApplication.translate("SLIDER",u"<html><head/><body><p align=\"center\"><img src='/home/pi/Myproject/ui/images/Slider_1m.png'/></p></body></html>", None))
如您所见,我设置了准确的图像位置。这是我发现在 raspbian 应用程序中查看的方式,而我的 tests_rc.py
文件完全没用。在 raspbian 中像 windows 一样使用 tests_rc.py
文件应该怎么做?
我有 mainicons.qrc
个文件包含:
<RCC>
<qresource prefix="images">
<file>images/calibration_.png</file>
<file>images/media_.png</file>
<file>images/menu_.png</file>
<file>images/upgrade_.png</file>
</qresource>
</RCC>
转换为 mainicons_rc.py
文件,然后导入到这个简单的示例中:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import QCoreApplication
import mainicons_rc
def window():
app = QApplication(sys.argv)
widget = QWidget()
textLabel = QLabel(widget)
textLabel.setText(QCoreApplication.translate("TestInitWindow", u"<html><head/><body><p><img src=\":/images/images/calibration_.png\"/></p></body></html>", None))
widget.setGeometry(50,50,300,300)
widget.setWindowTitle("PyQt5 Example")
widget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
window()
问题是:以前是我使用 C:\Python37\Scripts\pyside2-rcc.exe mainicons.qrc -o mainicons_rc.py
将它转换为 rcc 资源文件。
将 pyside-rcc.exe
更改为 pyrcc5.exe
解决了问题,现在转换命令应该像:C:\Python37\Scripts\pyrcc5.exe mainicons.qrc -o mainicons_rc.py
。
我检查了两个生成文件完全不同。
我正在开发一个在 Windows 和 Linux 上运行的跨平台应用程序(在我的例子中是 Raspbian)。我已使用 C:\Python37\Scripts\pyside2-rcc.exe tests.qrc -o tests_rc.py
将所有图像转换为单个文件。我的 tests.qrc
文件结构是这样的:
<RCC>
<qresource prefix="images">
<file>images/Slider_1m.png</file>
<file>images/Slider_2m.png</file>
<file>images/Slider_3m.png</file>
</qresource>
</RCC>
转换为 tests_rc.py
后在主脚本中编码如下:
self.SLIDER.setText(QCoreApplication.translate("SLIDER",u"<html><head/><body><p align=\"center\"><img src=':/images/images/Slider_1m.png'/></p></body></html>", None))
完美加载到 windows 应用程序中,不再需要原始图像文件。 但是在 raspbian 中,这种图像不会加载,我必须这样定义位置:
self.SLIDER.setText(QCoreApplication.translate("SLIDER",u"<html><head/><body><p align=\"center\"><img src='/home/pi/Myproject/ui/images/Slider_1m.png'/></p></body></html>", None))
如您所见,我设置了准确的图像位置。这是我发现在 raspbian 应用程序中查看的方式,而我的 tests_rc.py
文件完全没用。在 raspbian 中像 windows 一样使用 tests_rc.py
文件应该怎么做?
我有 mainicons.qrc
个文件包含:
<RCC>
<qresource prefix="images">
<file>images/calibration_.png</file>
<file>images/media_.png</file>
<file>images/menu_.png</file>
<file>images/upgrade_.png</file>
</qresource>
</RCC>
转换为 mainicons_rc.py
文件,然后导入到这个简单的示例中:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import QCoreApplication
import mainicons_rc
def window():
app = QApplication(sys.argv)
widget = QWidget()
textLabel = QLabel(widget)
textLabel.setText(QCoreApplication.translate("TestInitWindow", u"<html><head/><body><p><img src=\":/images/images/calibration_.png\"/></p></body></html>", None))
widget.setGeometry(50,50,300,300)
widget.setWindowTitle("PyQt5 Example")
widget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
window()
问题是:以前是我使用 C:\Python37\Scripts\pyside2-rcc.exe mainicons.qrc -o mainicons_rc.py
将它转换为 rcc 资源文件。
将 pyside-rcc.exe
更改为 pyrcc5.exe
解决了问题,现在转换命令应该像:C:\Python37\Scripts\pyrcc5.exe mainicons.qrc -o mainicons_rc.py
。
我检查了两个生成文件完全不同。