通过 QT Creator 的 GUI 使用 Py2app

Using Py2app with a GUI from QT Creator

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

启动时工作正常
$ python pyapp.py

为了把这个appuild变成可以双击运行的东西,我使用了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 文件。然后不使用 .ui,导入 .py 文件并从 .py 文件 中生成的 class 继承您的 class。这将允许 py2app 包含来自 python 模块的 ui 而不是搜索 .ui 文件。

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

更新

如果您想尝试第二种解决方案,您需要指定 .ui 文件的完整路径。您可以使用 python 模块中的 __file__ 属性来执行此操作。使用 uic.loadUiType(os.path.join(os.path.dirname(__file__), "mainwindow.ui"))

而不是 uic.loadUiType("mainwindow.ui")