Python 在QT Creator的GUI中使用Py2app

Python 在QT Creator的GUI中使用Py2app,python,qt,user-interface,pyqt,py2app,Python,Qt,User Interface,Pyqt,Py2app,我在QT Creatro中创建了一个GUI,并将其存储为*.ui文件。 我使用PyQT制作了一个GUI,当它作为 $ python pyapp.py 为了将这个应用程序构建成可以通过双击来执行的东西,我使用了Py2app。但是,单击图标两次后,出现的对话框中出现以下错误: pygui Error 打开控制台后,似乎是以下原因导致了此错误: 12/06/2015 15:58:30.084 pygui[29757]: IOError: [Errno 2] No such file or dire

我在QT Creatro中创建了一个GUI,并将其存储为*.ui文件。 我使用PyQT制作了一个GUI,当它作为

$ python pyapp.py
为了将这个应用程序构建成可以通过双击来执行的东西,我使用了Py2app。但是,单击图标两次后,出现的对话框中出现以下错误:

pygui Error
打开控制台后,似乎是以下原因导致了此错误:

12/06/2015 15:58:30.084 pygui[29757]: IOError: [Errno 2] No such file or directory: 'mainwindow.ui'
当应用程序打开时,似乎找不到我用QT Creator创建的gui。知道为什么会这样吗


提前感谢。

这是因为py2app无法找到通过代码中的字符串路径指定的文件。它不会在二进制文件中包含这些文件。你可以做两件事中的一件来解决你的问题

1) 必须使用
pyuic4
(包含在PyQt4安装中)将.ui文件转换为.py文件。完成此步骤后,您将拥有一个.py文件。然后,导入.py文件并从.py文件中生成的类继承类,而不是使用.ui。这将允许py2app包含python模块中的ui,而不是搜索.ui文件

2) 您只需手动将.ui文件放在py2app创建二进制文件的同一目录中。它应该可以正常工作

更新


如果要尝试第二种解决方案,则需要指定.ui文件的完整路径。您可以通过使用python模块中的
\uuuuuuuuuuuuuuuuuuuuuuuu
属性来实现这一点。请使用
uic.loadUiType(os.path.join(os.path.dirname(\uuu文件),“mainwindow.ui”)
,而不是
uic.loadUiType(os.path.join)(os.path.dirname(\uu文件),“mainwindow.ui”)

谢谢您的回复。我先尝试了第二种选择,但没有成功。在我的代码中,我使用uic.loadUiType(“mainwindow.ui”)[0]加载GUI。这是正确的方法吗?还是我应该先找出应用程序启动的路径?我仍在寻找第一个选项。我正在更新我的答案,以获得我答案的第二个解决方案。