我创建了一个Qt资源文件,里面有我所有的ui文件,我用pyrcc4命令行编译了一个python文件,然后我用loadUi加载ui文件。这里举个例子:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import os
import sys
from PyQt4.QtCore import Qt, QFile
from PyQt4.uic import loadUi
from PyQt4.QtGui import QDialog
from xarphus.gui import ui_rc
# I import the compiled qt resource file named ui_rc
BASE_PATH = os.path.dirname(os.path.abspath(__file__))
#UI_PATH = os.path.join(BASE_PATH, 'gui', 'create_user.ui')
UI_PATH = QFile(":/ui_file/create_user.ui")
# I want to load those compiled ui files,
# so I just create QFile.
class CreateUser_Window(QDialog):
def __init__(self, parent):
QDialog.__init__(self, parent)
# I open the created QFile
UI_PATH.open(QFile.ReadOnly)
# I read the QFile and load the ui file
self.ui_create_user = loadUi(UI_PATH, self)
# After then I close it
UI_PATH.close()
它工作正常,但我有一个问题。当我打开GUI窗口一次,一切正常。关闭窗口后,我尝试再次打开相同的图形用户界面窗口,我得到了长时间的回溯。
回溯(最近一次调用):文件“D:\Dan\Python\xarphus\xarphus\frm\u mdi.py”,第359行,在create\u update\u form self中。update_form=update_Window(self)文件“D:\Dan\Python\xarphus\xarphus\frm_update.py”,第135行,在init self中。ui\u update=loadUi(ui\u路径,self)文件“C:\Python27\lib\site packages\PyQt4\uic\uuuu init\uuuu.py”,第238行,在loadUi返回DynamicUILoader(package)中。loadUi(uifile,baseinstance,resource_后缀)文件“C:\Python27\lib\site packages\PyQt4\uic\Loader\Loader.py”,第71行,在loadUi return self中。解析(文件名,资源后缀,basedir)文件“C:\Python27\lib\site packages\PyQt4\uic\uiparser.py”,第984行,在解析树的parse document=parse(文件名)文件“C:\Python27\lib\xml\etree\ElementTree.py”第1182行。解析(源代码,解析器)文件“C:\Python27\lib\xml\etree\ElementTree.py”,第657行,在parse self中_root=解析器。close()文件“C:\Python27\lib\xml\etree\ElementTree.py”,第1654行,在close self中_raiseerror(v)文件“C:\Python27\lib\xml\etree\ElementTree.py”,第1506行,位于raiseerror raise err xml中。埃特里。元素树。ParseError:未找到元素:第1行第0列
大家能帮帮我吗?
也许我有一个解决办法,但我不知道这是否是一个完美的蟒蛇。
好吧,我们知道所有python项目都有一个______; init-文件。我们需要它来初始化Python包,对吗?我想:为什么不使用这个文件呢?我做了什么?我在___; init __;-文件中定义了如下函数:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from PyQt4.uic import loadUi
from PyQt4.QtCore import Qt, QFile
def ui_load_about(self):
uiFile = QFile(":/ui_file/about.ui")
uiFile.open(QFile.ReadOnly)
self.ui_about = loadUi(uiFile)
uiFile.close()
return self.ui_about
现在在我的“About_Window”课上,我这样做:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import os
import sys
from PyQt4.QtCore import Qt, QFile
from PyQt4.uic import loadUi
from PyQt4.QtGui import QDialog
import __init__ as ui_file
class About_Window(QDialog):
def __init__(self, parent):
QDialog.__init__(self, parent)
self.ui_about = ui_file.ui_load_about(self)
您可以看到,我将包文件(_uuinit__u-file)导入为ui_文件,然后调用函数并将函数的返回保存在变量self中。我不知道。
在我的例子中,我从主窗口(QMainWindow)打开About_窗口,它看起来是这样的:
def create_about_form(self):
self.ui_about = About_Window(self)
# Now when I try to show (show()-method) a window I get two windows
# The reason is: I open and load the ui files from compiled
# qt resorce file that was define in __init__-module.
# There is a function that opens the resource file, reads
# the ui file an closes and returns the ui file back
# That's the reason why I have commented out this method
#self.ui_about.show()
你看,我注释掉了show()-方法。没有这种方法,它就可以工作。我只定义About_Window()-类。我知道这可能不是最好的解决方案,但它确实有效。我可以一次又一次地打开窗口而不需要回溯。
如果您有更好的解决方案或想法,请告诉我:-)
问题内容: 我有一个在PyQt4中开发的应用程序。 它具有为Windows和QMenus设置的图标。 所有客户端系统均已安装python。并且PyQt4是从网络位置加载的。 该应用程序在带有正确加载图标的开发人员系统中运行良好。但是,当在客户端上运行相同的脚本时,应用程序可以运行,但图标不会加载。 在我的应用程序中,我也使用了Qsql驱动程序。它也有同样的问题。适用于开发人员系统,但不适用于客户端
问题内容: 我需要从一个zip文件(由py2exe压缩生成)中读取所有模块(预编译)到内存中,然后将它们全部加载。我知道这可以通过直接从zip文件加载来完成,但是我需要从内存中加载它们。有任何想法吗?(我在Windows上使用python 2.5.2)TIA Steve 问题答案: 这取决于您所拥有的“模块(预编译)”的确切含义。假设它恰好是文件的内容,例如,通过以下方式构建: IOW这样构建
我运行了一个简单的程序,它允许我将HTTP请求映射到一个函数——这很棒,所以我决定,与其简单地返回一个随机字符串,我还可以轻松地返回一个字符串格式的超文本标记语言页面,就像能够动态地提供静态超文本标记语言页面一样。 问题是我无法加载网页资源。 我的项目具有以下结构: 正如我所说,如果我只是想返回一个字符串,我的程序工作正常,它正在尝试加载我似乎无法管理的home.html文件,特别是我的问题是如何
我的拓扑的配置是: 我的第一个TransformBolt螺栓是:
我之前习惯这样引入,但https://unpkg.com偶尔会出现访问不了的情况,就会导致样式出不来。于是我把这份样式文件下载下来,一些icon,图标之类的东西会显示不出来。所以大家是怎么引入的?
问题内容: 我如何断言页面的CSS已在Watin 2.1中成功加载并应用了其样式? 问题答案: 在进行了一些研究并写下我的答案之后,我偶然发现了该链接,该链接解释了您需要了解的有关CSS的所有信息,何时加载CSS以及如何检查CSS。 实际上,所提供的链接对它的解释很好,以至于我在其中添加了一些引用以供将来参考。 如果您好奇,我的答案将是#2和#4的变体。 何时真正加载样式表? … 顺便说一句,让我
如何确认我的JAR文件已加载到Coldfusion中?我在CF10上。 我目前得到这个错误: 我的网站结构如下: 在我的申请中。cfc,我有以下代码: 这是我调用一切的代码: 更新#1 我在检查administor时发现了设置摘要,其中列出了服务器Java类路径。我添加了jar文件的位置并重新启动了服务器。即使路径存在于Administrator中的类路径中,我仍然会遇到相同的错误。 更新2 添加
我想在我的Minecraft Bukkit服务器(https://github.com/bitquest/bitquest)上安装以下插件。但为此我必须先编译它。我尝试了Maven,因为我不知道在手册中的含义。这导致一个. jar文件在服务器上不起作用(它发出错误消息)。我希望你能帮助我。有点关于jcjms。 手册: 构建BitQuest Java插件您可以构建BitQuest Java插件,您可