As a newbie, where should I go if I want to create a small GUI program?

I am a beginner with little experience writing in BASIC, Python and all things smidgeon assembler (as part of hacking ROM for video games). I wanted to create a small tool for changing the hexadecimal values ​​at certain points in a specific file that would have a GUI interface.

What I'm looking for is the ability to create a small GUI program that I can distribute as an EXE (or at least a standalone directory). I am not interested in the idea of ​​.NET languages ​​because I do not want to force people to download the massive .NET framework package. I currently have Python with IDLE and Boa Constructor, and the application works there. I tried to find compilation information for a python application using Wxwidgets, but the search results and the information found were confusing or simply completely incomprehensible.

My questions:

  • Is python a good language for such a project?
  • If I use Py2Exe, will WxWidgets already be included? Or should my users somehow install WxWidgets on their machines? Do I understand correctly that Py2Exe simply creates a standalone "dist" directory that has the necessary files for the user to simply double-click and launch the application?
  • If the program simply relies on Tkinter for GUI files, will it be included in Py2Exe's EXE? If so, are their "visual" GUI builders / IDEs for Python only with Tkinter?

Thank you for your time,

Jbmk

+6
python tkinter py2exe wxwidgets
source share
4 answers

You'd better think / say / googling wxPython (not wxWidgets) since wxPython is the python shell for wxWidgets C ++.

1.) Python is a good language to do this. If you are only window oriented, I do it anyway in .NET / C #. If you need cross-platform Python / wxPython completely.

2.) Yes, wxPython files must be included in the dist directory. Of course, you must install wxPython on your development machine. See here for some assembly instructions. py2exe creates a single directory with everything you need to run the program. This will give you an exe that you can double click.

3.) I have never used Python Tkinter with py2exe, but I do not understand why it will not work on wxPython lines.

You should keep in mind that your finally distribution directory will be 10 megabytes (py2exe packs the python interpreter and other libraries needed for your application). Not as much as the .NET Framework, but almost everyone already has no installed programs?

+4
source share

If you are not afraid to learn a new language, consider Tcl / Tk. The reason I mention this is the distribution mechanism of Tcl from almost to almost everyone, which simplifies the shutdown of a single exe file, which includes everything you need - Tcl / Tk runtime, your program, icons, sound files etc. inside the embedded virtual file system. And the same method that you use for one platform works for everyone. You do not need to use different tools for different platforms.

If this intrigues you, google for starpack (the only file that has everything), starkit (a platform-independent application) and tclkit (platform runtime).

Tcl / Tk is not all cups of tea, but as the GUI language started with the launch, it's hard to beat IMO. If he has an Achilles heel, then he does not have print support. It is surprising, however, how many graphical interfaces do not need print support these days.

+2
source share

For a multi-platform GUI, I recommend that you use Qt libraries and PyQt .

I recently used them for a small application, and I liked both; Qt has a great Gui designer, and the / PyQt signal slot model worked for me.

You can deploy your application on Osx and Windows using py2app and py2exe; here is a useful link that shows you, as well as a possible size result.

0
source share
  • Python will fit your needs.
  • wxWidgets and Python are completely different things. I think you mean wxPython, which is a set of GUI tools for Python. I'm not sure if Py2Exe will enable this, since I have never used Py2Exe - I manually create packages and their dependencies.
  • Pretty sure tkinter will be enabled. I use tkinter a bit and it works quite well.
0
source share

All Articles