【发布时间】:2013-07-21 04:08:34
【问题描述】:
我一直在尝试设置 PySide/Qt 以用于 Python3.3。我已经安装了
PySide-1.2.0.win32-py3.3.exe
我从here 获取并安装了
qt-win-opensource-4.8.5-vs2010
我从here 获取的。
我使用pyside-uic.exe as is explained in PySide Wiki 从.ui 文件(我使用QtDesigner 创建的)生成.py 文件。
当我使用 Qt5.1/QtCreator 时,制作 .py 文件可以正常工作。当我发现我需要使用 Qt4.8 as explained on Qt-forums 时,我停止使用它。对于 Qt4.8,它无法正常工作。
- 我想使用 PySide 开发 GUI。
- 我想要一个用于制作骨架 GUI 的拖放界面,所以我使用 QtDesigner。
- 我使用的是 Windows 7
我想用cx-freeze将开发的GUI打包成.exe文件。
简而言之我的问题
使用 QtDesigner 制作 .ui 的正确工具是什么?如何使用 PySide 将它们转换为 .py 文件以在 Python 中使用?
cx_freeze 能够将我的普通文件转换为.exe 可以用来将Qt/PySide 制作的GUI 转换为.exe 文件吗?在 GUI 的 .exe 被分发的其他计算机上是否需要 Qt 或者它是独立的?
我用过
cxfreeze testGUI.py --include-modules=PySide
制作exe和相关文件。使用许多文件创建了一个目录 dist。运行时什么也没发生。所以我用命令行来找出原因。错误是
Traceback (most recent call last):
File "C:\Python33\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 27, in <module>
exec(code, m.__dict__)
File "testGUI.py", line 12, in <module>
File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1558, in _find_and_load
File "C:\Python\32-bit\3.3\lib\importlib\_bootstrap.py", line 1525, in _find_and_load_unlocked
File "C:\Python33\lib\site-packages\PySide\__init__.py", line 55, in <module>
_setupQtDirectories()
File "C:\Python33\lib\site-packages\PySide\__init__.py", line 11, in _setupQtDirectories
pysideDir = _utils.get_pyside_dir()
File "C:\Python33\lib\site-packages\PySide\_utils.py", line 87, in get_pyside_dir
return _get_win32_case_sensitive_name(os.path.abspath(os.path.dirname(__file__)))
File "C:\Python33\lib\site-packages\PySide\_utils.py", line 83, in _get_win32_case_sensitive_name
path = _get_win32_long_name(_get_win32_short_name(s))
File "C:\Python33\lib\site-packages\PySide\_utils.py", line 58, in _get_win32_short_name
raise WinError()
FileNotFoundError: [WinError 3] The system cannot find the path specified.
有人知道这个堆栈跟踪是什么意思吗?
这里有很多win32。但我有 Windows 7 64 位。我使用的是 32 位 Python,并且所有模块都安装了 32 位。这会导致问题吗?我认为它不应该像我为简单的 Python 脚本制作的其他 exe 一样执行良好。
【问题讨论】:
-
您可以使用 Qt Creator 创建您的 UI。
-
@Reza 但问题是如何在 Python 中正确使用
.ui文件。我是使用 pyside-uic 将它们转换为 Python 类还是需要动态加载它们?将生成的应用程序转换为功能性 exe 需要做什么?我正常使用 cxfreeze 并且它可以工作,但是带有 GUI 的 exe 没有工作。我只是被难住了。 -
我不知道到底是什么导致了你的错误,但是在 C++ Qt 中生成了相关的 UI 的
.cpp文件,然后在项目中编译它,花点时间在 Qt 文档中搜索 Loading @ 987654342@如果可能的话直接归档。 -
出于好奇:您是否在使用和部署自定义小部件?
-
@cfi 我刚开始在 Python 中使用 PySide 和 GUI,所以还没有。在尝试使用任何特定工具包之前,我只是想弄清楚这些细节。
标签: python qt user-interface pyside