当前位置: 首页 > 面试题库 >

如何从网络加载PyQt4中的.ico文件

危卜鹰
2023-03-14
问题内容

我有一个在PyQt4中开发的应用程序。

它具有为Windows和QMenus设置的图标。

所有客户端系统均已安装python。并且PyQt4是从网络位置加载的(\\system_xyz\PyQt4)

该应用程序在带有正确加载图标的开发人员系统中运行良好。但是,当在客户端上运行相同的脚本时,应用程序可以运行,但图标不会加载。

在我的应用程序中,我也使用了Qsql驱动程序。它也有同样的问题。适用于开发人员系统,但不适用于客户端系统。

我可以通过将sql插件路径添加到以下应用程序来克服此sql驱动程序问题

SQLDriverPath = (r'\\system_xyz\PyQt4\plugins\sqldrivers')
QtGui.QApplication.addLibraryPath(SQLDriverPath)

我了解到pyqt4需要qico4.dll读取.ico文件。所以我将imageformats路径添加到了应用程序。但它没有用。

ImageDriverPath = (r'\\system_xyz\PyQt4\plugins\imageformats')
QtGui.QApplication.addLibraryPath(ImageDriverPath)

任何人都可以建议我一种正确的方法来解决我的问题,如何通过网络在PyQt应用中加载.ico

我的更新

我做了以下列出支持的图像格式

import sys

sys.path.append(r'r'\\system_xyz')

from PyQt4 import QtGui

for imageType in QtGui.QImageReader.supportedImageFormats():
    print imageType

输出值

bmp
pbm
pgm
png
ppm
xbm
xpm

添加后我尝试列出上面的内容imageformats,创建后OP也一样QtGui,QApplication()。结果不变。


问题答案:

您可以在qt.conf文件中设置路径,并将此文件放置在应用程序可执行文件的位置。

从网络位置访问PyQt4,说\ somesystem \ Share \ PyQt4

您可以在\\ somesystem \ Share \ PyQt4中找到一个qt.conf文件,然后将其复制并粘贴到应用程序可执行文件的位置。

在qt.conf中编辑以下几行

[Paths]
Prefix = //somesystem/Share/PyQt4
Binaries = //somesystem/Share/PyQt4

一切正常,即使sqldrivers也将被加载。无需使用app.addLibraryPath您也可以在安装程序中包含此文件,以便将其自动安装。



 类似资料:
  • 所以我做了一个应用程序来存储所有用户喜欢的应用程序的快捷方式,有点像一个集线器。我可以支持实际的文件,我有一个<代码>。快捷方式的lnk解析器。我认为应用程序支持互联网快捷方式也是非常好的。这就是我正在做的: 假设我试图获取Google的图标(< code > http://www . Google . com/favicon . ico )。 > < li> 我首先去掉多余的页面(例如< cod

  • 除了从文件加载数据,另一个流行的数据源是互联网。 我们可以用各种各样的方式从互联网加载数据,但对我们来说,我们只是简单地读取网站的源代码,然后通过简单的拆分来分离数据。 import matplotlib.pyplot as plt import numpy as np import urllib import matplotlib.dates as mdates def graph_data(s

  • 问题内容: 我有以下网址: 我尝试下载文件: 这产生了一个名为“ test.xls”的文件,但这显然是一个html文件。如果我在firefox中打开了html文件,则打开了一个excel文件,但是如果我在excel中打开了文件,那绝对不是我要找的excel文件。 如果我有一个与上述地址相同的网址,如何使python将excel文件下载为excel文件? 问题答案: 这会将excel文件保存在运行脚

  • 问题内容: 我正在尝试使用PyQt4创建一个应用程序窗口。我想创建一个带有框架的窗口,在该框架内有一些小部件,例如标签和文本编辑器。我将框架创建为QGroupBox以便能够在其上添加标题。我知道当处理框架时,HBox和VBox似乎是首选的布局,但是,我想使用网格布局来管理窗口小部件在框架中的定位,我发现它更易于管理。所以我尝试了这段代码: 这里的主要思想是创建一个hbox,在其中放置QGroupB

  • 问题内容: 网络上的许多文章都是这样的建议在EOT网址中添加一个。我很好奇,想知道 怎么 这是要解决的问题。谢谢。 问题答案: IE8和更早版本的src属性在解析器中存在错误。因此,如果您在SRC中包含多种字体格式,IE将无法加载它并报告404错误。 问号解决了这个问题,因为它使IE认为字符串的其余部分(其他src)是查询字符串,因此仅加载EOT文件… 其他浏览器将遵循规范并仅加载其所需的字体类型

  • 问题内容: 我正在为Android编写一个小相框应用程序,它使用opengl作为部分UI。这部分需要从flickr获取图像并将其加载到纹理中。我下面的代码大多数时候都可以使用,但是在从连接获取输入流和对流进行位图解码的位之间,它具有Thread.sleep()缺点: 我如何使用sleep()方法来支持具有逻辑意义的内容? 我正在不在模拟器中的三星银河标签上进行测试 问题答案: 这似乎不太理想,但是