面向未来的Python GUI +文件拖放+可执行文件

时间:2016-06-14 13:44:54

标签: python user-interface drag-and-drop pyinstaller

我有一个Python 2.7 / Tkinter程序,它使用 TkinterDnD2 TkDnD (不是标准Python发行版的一部分)来在Win7中提供文件拖放/ Win10环境。我一直在使用 PyInstaller 来创建单文件可执行文件,以便在我们的组织内进行分发。我好几年都没碰过它,但它需要维护。不幸的是,PyInstaller(3.2)的当前版本不会生成这些Tk *模块的可运行可执行文件。 (我有一个自定义的奥术hook-_tkinter.py,它可以使用旧版本的PyInstaller,但无法将其移植到3.2。)

我可以尝试替换PyInstaller;我可以尝试不同的GUI工具包。我想要一个可以在Python 3中运行的解决方案。我需要文件拖放功能。目前尚不清楚TkinterDnD2和TkDnD是否再受支持。

使用文件拖放构建Python 3 GUI并将其作为便携式"进行分发的可行组合是什么?可执行?

Python 3 + [tkinter|wxwidgets|pyside|??] + [pyinstaller|cx_freeze|py2exe|??]

1 个答案:

答案 0 :(得分:0)

我已成功将我的应用程序迁移到在Windows 10中运行的 Python 3.4 / PySide 1.2.4 / Qt 4.8.7 ,我可以使用 PyInstaller 3.2 。

与Python 2.7和Tkinter / TkinterDnD2 / TkDnD相比,打包更简单。不需要自定义挂钩:

pyi-makespec --windowed --onefile --noupx --icon=appicon.ico app.py
pyinstaller --clean app.spec

这会产生 app.exe 。我每次使用--clean标志清除pyinstaller缓存以避免任何问题。

我对Qt / PySide也非常满意。它支持拖放(这是我从上面的要求),一套成熟的小部件和良好的文档。

我还看了其他GUI工具包候选人,Tkinter和wxwidgets。 Python 3中的Tkinter仍然不支持本机文件拖放,并且它看起来不像TkinterDnD / TkDnD被主动支持。 Wxwidgets似乎也不支持文件拖放。

相关问题