views:

154

answers:

4

I'm interested in getting started w/ developing Python based applications for a desktop environment and have a few (seemingly simple) questions:

  1. What is the best method for developing GUI applications? I've seen several frameworks but the indexes I've found are a bit convoluted and mix (what seem to be) legacy packages. In your opinion, what is the best approach in this regard?
  2. I've been reading a few books I recently picked up, but have been having trouble finding (rather, recognizing) a decent 'getting started' tutorial that focuses on Python apps for the desktop. Do you have any recommendations?

Thanks very much in advance! :)

+1  A: 

Have you considered Iron Python as an option? It's basically the Python language on top of the .NET Framework. Having been fortunate enough to work with the .NET Framework in the past on desktop-applications, I can attest to its depth of excellent.

Jonathan Sampson
Interesting idea. Do you have any links to a good "getting started" tutorial?
Craig McQueen
@Craig: Perhaps "A First Look at IronPython: Where Python meets .NET" will be of some interest: http://www.devsource.com/c/a/Languages/A-First-Look-at-IronPython-Where-Python-meets-NET/
Jonathan Sampson
+1  A: 

wxPython is a phenomenal GUI toolkit for developing native applications. I highly recommend it. Also, if you combine it with py2exe you can create .exe files for running on Windows.

stealthdragon
If you ever need to write an app that must also by cross-ported to Linux, you may prefer PyQt to wxPython. I found that when I wanted to try wxPython in my corporate Linux environment, wxPython has dependencies on the latest and greatest of all its dependencies. Whereas PyQt seems to be reasonably compatible to less than the latest and greatest for its dependencies.
Ross Rogers
What are these so-called latest and greatest?
George Edison
The version of python, gcc, glib, gtk+, opengl. I've installed a lot of code from tar-balls and I had a lot of trouble with wxPython. I may be an idiot, but this idiot was turned off to wxPython :-) Using wxPython could be a deployment risk/hassle. This is just my experience. If you have root permissions on all the machines you're going to run on and you're allowed to update them to the latest with something like a `sudo apt-get dist-upgrade`, then this is a non-issue.
Ross Rogers
True. There are a lot of dependencies, but that's not necessarily a bad thing.
George Edison
@Ross Perhaps in that case you could install whatever old version of wxPython was around at the time the dependencies *were* the latest and greatest.
Craig McQueen
Or, as most smart admins do, keep everything up to date anyway.
George Edison
+2  A: 
  1. wxPython is the best GUI framework.
  2. The official docs are the best resource. They helped me quite a bit.
George Edison
The docs have been amazing for syntax reference, but have still been a bit confusing w/ regard to the process of implementing and working w/ an environment dedicated to desktop development and deployment. Seeking additional resources. Thank you for the recommendation of wxPtyon. :)
Lorren Biffin
There are a lot of good tutorials hidden amongst the docs too :)
George Edison
Thanks! I'll keep diggin. :)
Lorren Biffin
+1  A: 

easyGUI and Tkinter are VERY easy libraries that can be used with Python to make GUIs. Further, as stealthdragon has suggested, you can use py2exe to compile your GUIs into EXEs for your PC. There are also other compilers such as pyc.

As Jonathan Sampson suggests, you might consider using IronPython and use it to wield the full power of the .NET framework. The IronPython Cookbook, which among other things shows you how to make a basic Twitter Client.

inspectorG4dget
I know I just recommended wxPython, but apart from that, tkinter is quite good. It's also bundled with Python.
George Edison