使PyQt资源可用于其他Python类

2024-09-27 21:27:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用PyQt开发一个GUI,我想使用PyQt资源系统来跟踪我的资源(图像、模板等)。我试图找到一种方法,可以获得资源的绝对路径,这样就可以用非PyQt类来加载它们。例如,我希望能够获得一个资源映像的路径,并用matplotlib绘制它,例如

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from PyQt5 import QMysteryClass

qimg = QMysteryClass(":/myresource.png")
img = mpimg.imread( qimg.absolutePath() )
fig, ax = plt.subplots()
ax.imshow( img )
plt.show()

有人知道PyQt资源系统是否支持这种使用,或者我只需要以其他方式管理资源?在


Tags: 图像import模板imgmatplotlib系统asgui
1条回答
网友
1楼 · 发布于 2024-09-27 21:27:00

您应该阅读关于Qt资源系统的this doc。基本上,您构建了一个.qrcxml文件,并使用pyrc5可执行文件将其转换为可以导入的python模块。在

一旦有了python模块,就可以像QFile(":/path/to/file")那样读取内容,或者直接使用QImage来处理图像。另外,请注意,您的文件在内存中,因此您不能在非Qt类中使用路径访问它们,这就是为什么需要从内存中读取数据。将图像数据加载到缓冲区并将其读入matplotlib类。在

来自matplotlib.image.imread文档:

fname may be a string path or a Python file-like object. If using a file object, it must be opened in binary mode.

因此,您应该能够将数据包装在^{}对象中。在

相关问题 更多 >

    热门问题