7

我是一个新手,有一点用 BASIC、Python 编写的经验,尤其是一点汇编程序(作为视频游戏 ROM hack 的一部分)。我想创建一个小工具,用于修改特定文件中特定点的十六进制值,该工具将具有 GUI 界面。

我正在寻找的是创建小型 GUI 程序的能力,我可以将其作为 EXE 分发(或者,至少是一个独立的目录)。我不热衷于 .NET 语言的想法,因为我不想强迫人们下载大量的 .NET 框架包。我目前设置了带有 IDLE 和 Boa 构造函数的 Python,并且应用程序在那里运行。我尝试查找有关编译依赖于 Wxwidgets 的 python 应用程序的信息,但搜索结果和我发现的信息令人困惑,或者完全无法理解。

我的问题是:

  1. python 是用于此类项目的好语言吗?
  2. 如果我使用 Py2Exe,WxWidgets 是否已经包含在内?还是我的用户必须以某种方式在他们的机器上安装 WxWidgets?我在 Py2Exe 的想法是否正确,只是生成了一个独立目录“dist”,其中包含用户只需双击并运行应用程序所需的文件吗?
  3. 如果该程序仅依赖 Tkinter 来获取 GUI 内容,那么它是否会包含在 Py2Exe 生成的 EXE 中?如果是这样,他们是否只有 Tkinter 的 Python 的“可视”GUI 构建器/IDE?

感谢您的时间,

JBMK

4

4 回答 4

4

你最好思考/说/谷歌搜索wxPython(不是wxWidgets),因为wxPython是wxWidgets C++的python包装器。

1.) Python 是一种很好的语言。如果您只针对 Windows,我仍然会在 .NET/C# 中执行此操作。如果你想要跨平台,Python/wxPython 一路走来。

2.) 是的,wxPython 文件应该包含在 dist 目录中。当然,您必须将 wxPython 安装到您的开发机器上。有关如何构建的一些说明,请参见此处。py2exe 确实会生成一个目录,其中包含运行程序所需的一切。它会给你一个可以双击的EXE。

3.) 我从未将 Python 的 Tkinter 与 py2exe 一起使用,但我不明白为什么它不能按照 wxPython 的方式工作。

您应该记住,您最终可分发的目录将是 10 兆字节(py2exe 包含您的应用程序所需的 Python 解释器和其他库)。不如 .NET 框架那么多,但现在不是几乎每个人都已经安装了吗?

于 2010-03-13T19:38:23.787 回答
3

如果您不害怕学习一门新语言,请考虑 Tcl/Tk。我提到这一点的原因是 Tcl 优越于几乎一切的分发机制,它使得包装一个包含你需要的一切的单个文件 exe 变得非常容易——Tcl/Tk 运行时、你的程序、图标、声音文件等. 在嵌入式虚拟文件系统中。您在一个平台上使用的相同技术适用于所有平台。您不必为不同的平台使用不同的工具。

如果您对此感兴趣,请在 Google 上搜索 starpack(包含所有内容的单个文件)、starkit(独立于平台的应用程序)和 tclkit(特定于平台的运行时)。

Tcl/Tk 不是每个人都喜欢的,但作为一种入门的 GUI 语言,它很难击败 IMO。如果它有一个致命弱点,那就是它没有打印支持。然而,令人惊讶的是,如今有多少 GUI 不需要打印支持。

于 2010-03-13T22:33:42.623 回答
0
  1. Python 将满足您的需求。
  2. wxWidgets 和 Python 是完全不同的东西。我认为您的意思是 wxPython,它是 Python 的 GUI 工具包。我不确定 Py2Exe 是否会包含这个,因为我从未使用过 Py2Exe - 我手动构建包及其依赖项。
  3. 很确定 tkinter 会被包括在内。我稍微使用了 tkinter,它运行良好。
于 2010-03-13T22:09:24.680 回答
0

对于多平台 GUI 项目,我建议您使用Qt 库PyQt

我最近将它们用于一个小型应用程序,我都喜欢;Qt 有一个很棒的 Gui 设计师和 PyQt slot\signal 模型为我工作。

您可以使用 py2app 和 py2exe 在 Osx 和 Windows 上部署您的应用;这里有一个有用的链接,向您展示如何以及可能的大小结果。

于 2010-03-13T20:34:04.637 回答