使用 pkgutil 加载 QIcons
Loading QIcons using pkgutil
我正在尝试加载图像我不知道如何使用 pkgutil.get_data()
加载图像,我更愿意使用它,因为我不想在我的代码中使用固定路径。
目前,我有这样的东西,只有当 运行从同一文件夹中退出时才有效。
...
self.imagePixmap = QtGui.QPixmap("img/myImage.png")
...
那么问题是,如果您 运行 来自其他文件夹的脚本,路径就会乱七八糟,您会收到此错误:
QPixmap::scaled: Pixmap is a null pixmap
我想使用类似的东西:pkutil.get_data("img", "myImage.png")
来加载图像,但是这提供了来自图像文件的数据,其中 QPixmap()
需要其他类型的数据。
我能看到的唯一 "workaround" 是使用他们在此处指定的部分内容:pkgutil.get_data
并做这样的事情:
self.myPath = os.path.dirname(sys.modules[__name__].__file__)
self.imagePixmap = QtGui.QPixmap(os.path.join(self.myPath,"img/myImage.png"))
这对我来说似乎很重要 kludge。有没有更好的方法?
这是我最终发现的。我应该让 rtfm 更近一点。无论如何,您可以使用 loadFromData()
方法从 QByteArray
获取数据并将其中数据的 格式 传递给它。
self.imagePixmap = QtGui.QPixmap()
self.imagePixmap.loadFromData(get_data(__name__, "img/myImage.png"), 'png')
这里有一个link给的资料from here:
bool QPixmap::loadFromData(const QByteArray &data, const char *format = Q_NULLPTR, Qt::ImageConversionFlags flags = Qt::AutoColor)
This is an overloaded function.
Loads a pixmap from the binary data using the specified format and conversion flags.
我正在尝试加载图像我不知道如何使用 pkgutil.get_data()
加载图像,我更愿意使用它,因为我不想在我的代码中使用固定路径。
目前,我有这样的东西,只有当 运行从同一文件夹中退出时才有效。
...
self.imagePixmap = QtGui.QPixmap("img/myImage.png")
...
那么问题是,如果您 运行 来自其他文件夹的脚本,路径就会乱七八糟,您会收到此错误:
QPixmap::scaled: Pixmap is a null pixmap
我想使用类似的东西:pkutil.get_data("img", "myImage.png")
来加载图像,但是这提供了来自图像文件的数据,其中 QPixmap()
需要其他类型的数据。
我能看到的唯一 "workaround" 是使用他们在此处指定的部分内容:pkgutil.get_data 并做这样的事情:
self.myPath = os.path.dirname(sys.modules[__name__].__file__)
self.imagePixmap = QtGui.QPixmap(os.path.join(self.myPath,"img/myImage.png"))
这对我来说似乎很重要 kludge。有没有更好的方法?
这是我最终发现的。我应该让 rtfm 更近一点。无论如何,您可以使用 loadFromData()
方法从 QByteArray
获取数据并将其中数据的 格式 传递给它。
self.imagePixmap = QtGui.QPixmap()
self.imagePixmap.loadFromData(get_data(__name__, "img/myImage.png"), 'png')
这里有一个link给的资料from here:
bool QPixmap::loadFromData(const QByteArray &data, const char *format = Q_NULLPTR, Qt::ImageConversionFlags flags = Qt::AutoColor)
This is an overloaded function.
Loads a pixmap from the binary data using the specified format and conversion flags.