作为新手,创建小型GUI程序该去哪里?

7 投票
4 回答
658 浏览
提问于 2025-04-15 20:23

我刚开始接触编程,之前写过一点BASIC和Python,还有一点点汇编语言(是为了修改一个电子游戏的ROM)。我想做一个小工具,可以在特定文件的特定位置修改十六进制值,并且希望这个工具有个图形界面。

我想要的是能创建一个小的图形界面程序,方便我把它打包成EXE文件(或者至少是一个独立的文件夹)。我不太想用.NET语言,因为我不想让别人去下载一个庞大的.NET框架。我现在已经在用Python和IDLE,还有Boa Constructor,应用程序在那边可以运行。我试着查找关于如何编译一个依赖于Wxwidgets的Python应用的信息,但搜索结果和我找到的资料都让我感到困惑,或者根本看不懂。

我有几个问题:

  1. Python适合用来做这样的项目吗?
  2. 如果我使用Py2Exe,WxWidgets会自动包含在内吗?还是说我的用户需要自己在他们的电脑上安装WxWidgets?我是不是理解错了,Py2Exe只是生成一个独立的文件夹'dist',里面有用户只需双击就能运行应用程序的必要文件?
  3. 如果程序只依赖Tkinter来做图形界面,Py2Exe生成的EXE文件会包含Tkinter吗?如果会的话,有没有只用Tkinter的“可视化”图形界面构建工具或IDE?

谢谢你的时间,

JBMK

4 个回答

0

对于一个多平台的图形用户界面项目,我推荐你使用Qt库PyQt

我最近用它们做了一个小应用,感觉非常好;Qt有一个很棒的界面设计工具,而PyQt的信号和槽模型也很适合我。

你可以通过py2app和py2exe在Mac和Windows上发布你的应用;这里有一个有用的链接,教你怎么做以及可能的文件大小。

3

如果你不怕学习一种新语言,可以考虑试试Tcl/Tk。我提到这个的原因是,Tcl的分发机制几乎比其他任何东西都要好,这让你可以很轻松地把所有需要的东西打包成一个单文件的可执行程序,比如Tcl/Tk的运行环境、你的程序、图标、声音文件等等,全部放在一个嵌入式的虚拟文件系统里。而且,你在一个平台上使用的技术,在其他平台上也能用,不需要为不同的平台使用不同的工具。

如果你对此感兴趣,可以去网上搜索一下starpack(一个包含所有内容的单文件)、starkit(平台无关的应用程序)和tclkit(特定平台的运行环境)。

Tcl/Tk可能不是每个人都喜欢的,但作为一个入门的图形用户界面(GUI)语言,我觉得它真的很不错。如果说它有什么短板,那就是没有打印支持。不过,令人惊讶的是,现在很多图形界面其实并不需要打印功能。

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一样可以正常工作。

你要记住,最终你分发的目录可能会有几十兆(py2exe会把运行你应用所需的Python解释器和其他库打包进去)。虽然没有.NET框架那么大,但几乎每个人现在应该都已经安装了吧?

撰写回答