I was wondering what options are available for Python 3.x? I know Tkinter is available as well as qt, but what about the other libraries? Any word on when some of them may be ported over to 3.x?
Several recent versions of PyQt support Python 3 (I'm pointing to the PyPi entry, which is for PyQt 4.6, but there's also a more recent PyQt 4.7). I haven't personally tried out PyQt with Python 3, but PyQt's long been an excellent GUI toolkit so I have no reason to doubt the claim.
I have heard really good things about WxWidgets or wxpython but cant find any word when its going to be compatible. I always liked QT.
As you can read in the newsgroups of wxPython, people ary trying to port it to Python 3.x but it will take a while.
There are also plans to port PyGTK (see the bug report).
In any case, these ports will take (at least) months, I guess, so you should stick with PyQT or tkinter for the time being. Or with Python 2.6.
I use exclusively Tkinter, and though it's somewhat limited in terms of images, it's remarkably easy to work with and follows the standard easy-to-read Python syntax very nicely. I'm not familiar with other GUI options, but Tkinter is great from my experience.
Related
I'm trying to find out if I can write python-based windows desktop widgets using python 3.2.2 or higher for windows. The above projects are thoroughly confusing. Do any of them support what I'm looking for? (i.e. can be used with windows and python 3.2.2 and higher?
I did come across this answer (https://askubuntu.com/questions/97023/why-cant-i-import-pygtk-with-python-3-2-from-pydev) but it looks like it only works for non-windows platform.
If non of these above python-projects will work with windows and python 3.2.2, is there an easier way to create rainmeter-like desktop widgets in python 3.2.2 or higher for windows?
To start with the confusion: Gtk is the GIMP toolkit, and all the different things you mention in your question title are related, but not quite the same. PyGTK is the legacy binding between Python and GTK, and PyGObject is the preferred binding if you go down that road.
Here a nice short overview of all the different GUI options for Python development, that should explain those terms briefly so that you have an overview. And as gauden suggested in the comments, wxPython is a very common road for cross-platform applications.
Nowadays you should at least consider Kivy as well, it is fun to program in, and it even gives you options to expand the "cross-platform" bit to mobile devices. It supports transparency (or opacity in Kivy terms)
I've been using Python 3 for some months and I would like to create some GUIs. Does anyone know a good GUI Python GUI framework I could use for this?
I don't want to use TkInter because I don't think it's very good. I also don't want to use PyQt due to its licensing requirements in a commercial application.
First of all, I suggest you to stay with Python 2.x if you want to develop commercial products at this moment.
This is because it is still the most widely available version of Python.
Currently, Ubuntu ships with 2.7.2 and OS X Lion with 2.7.2, too.
Regarding PyQT, you can use Nokia's re-implementation of it, PySide. It is under LGPL, so yes, you can create commercial products. Moreover, QT also transitioned to LGPL. See QT License here.
Update: Additionally, support for Python 3.x is still under development for many GUI frameworks, PySide included.
Hummm. . . .
Hard to believe that Qt is forbidden for commercial use, as it has been created by some of the most important companies in the world . . . http://qt.nokia.com/
Go for pyQt ;)
You probably mean that PyQt can only be used for GPL projects. However, the equivalent PySide Python bindings for QT are LGPL, like QT itself, so you can use those; unfortunately, they only support Python 2.5/7 at the moment.
If you don't mind being cross-platform, you can fall back on the win32api stuff (bleh), or go the hybrid way with Jython (which supports Swing as well as any other Java-based toolkit) or IronPython (which uses .Net).
Pyside might be the best bet for you :
http://www.pyside.org/
It is basically Qt but under the LGPL license, which means you can use it in your commercial application.
Well, If you feel Qts is not suitable(thats hard to belive either) you could switch to
WxPython . It too has an good learning curve and can satisfy your commersial needs
Features needed:
A framework, allowing me to build tab-based application with custom design (like in Hotot twitter client), keeping the native os window frame.
Compatible with Python.
My application will be running under Win/OsX/Linux/.
No Flash/Flex/AIR.
I also would like to ask if PySide does meet my requirements and is it worse or better than wxPython and Tkinter mentioned already?
Use Tkinter. It works on every platform that Python supports, is relatively easy to program in, looks pretty good on most platforms, and has the features you want. It's also built-in for most versions of Python, so your users (in many cases) will not have to install any external dependencies.
I find that Tkinter looks best on Mac OSX and Windows, and slightly outdated on some Gnome desktops. The most important feature, however, is that the API is extremely clean and easy to use and it is very lightweight. PyQt has a similar feature set, but, in my experience, its performance is significantly degraded when compared to Tkinter.
PySide is Nokia's Qt binding for Python. I'm not aware of what the differences are between it and PyQt. Ultimately, most GUI toolkits for Python are going to be cross platform and support the functionality you need. I suggest Tkinter because I feel it is the easiest and most pleasurable way to program GUI applications in Python.
I am the author of Hotot.
according to your requirements, the key for you to choose a framework is the UI framework should be able to access webview conveniently.
Hotot has several wrappers for different platforms. On Linux, we have both Qt and GTK version, on Windows, we provide a Qt version, on Mac, we have a Cocoa version, and of course we have a Chrome version. In a word, all they can easily access webkit.
PS: XULRunner is another good choice for native appearance.
Additionally to the advices given by other people, I suggest you to use PyQt which is a Python binding to Qt framework. It's widely used, cross-platform and feature-full.
Take a look at wxPython (based on wxWidgets). If you want to make it web-based, look into using Django.
Well, you mentioned PyHotOt, and it says (on its web site) that it uses pywebkitgtk, and PyGTK. PyGTK/PyWebKitGTK exists for windows. Did you check it out? I think OS X would be the weak link on GTK, but maybe it's pretty good too.
Last time I saw, GUIs in Python were extremely ugly, how's it today?
(saw some beautiful images on google images, but I don't know if are really Python's)
Python 2.7 and 3.0 ships with the themed tk ("ttk") widgets which look much better than previous versions of Tk (though, honestly, any competent GUI developer can make even older Tk look good). Don't let the people who don't know much about Tk sway you from using it, it's still a very viable toolkit for many, many tasks. You won't be creating a Photoshop clone with it, but how many people write those kinds of apps anyway?
I've been using wxPython for the past year and would still choose Tkinter over it for most tasks. Tkinter is much simpler and in many respects more powerful. The only advantage wxWidgets has is that it has more built-in widgets, but I find many of them a bit buggy and hard to use. For most apps that most people will write, Tkinter is still an excellent choice.
Some screenshots of themed widgets are available here:
http://code.google.com/p/python-ttk/wiki/Screenshots
Here's a screenshot of a Tkinter app that uses the themed widgets on the Mac:
http://www.codebykevin.com/phynchronicity-running.png
Tk is sill is the default GUI toolkit for Python, but it has a theme support from Python 2.7/3.1. It is not as ugly as before.
However, you can use some nice alternatives which still look better (IMHO) and have more functionalities :
wxPython : maybe the most used, cross platform and all, your applications will look the same as native.
PyQt or soon PySide : bindings for the Nokia Qt open source framework. There is more than just a GUI toolkit.
PyGTK : bindings for the GTK+ libraries
Here is more info : http://wiki.python.org/moin/GuiProgramming
Python has bindings for Tk, Qt, GTK, wx, and many more. There's no reason it should be any uglier than another language. You're probably thinking of a gui made with Tk, which has a reputation of being ugly. It's not specific to python, but it might be more common because it's very simple and ships with python by default.
See Gui Programming on the python wiki for more info.
I Think the latest Tkinter version offers native look for Macos. WxPython and QT offers native look for macos,windows and linux. GTK is abit ugly and prone to crashes on mac cause of the X11 implentation there.
Of course you could build your own GUI , that something I am trying to do with pygame.Let me clarify , I am not making a GUI library just GUI for my own application. I am making the graphics in the 3d app Blender.
My vote for Generic GUI goes to wxPython, tried it, looks great, easy to use and works like a charm across platforms. You will also find tons of info about it. Integrates well with opengl so if you want to do extreme guis on it , it can do them.
This question already has answers here:
Closed 14 years ago.
How do I make a GUI for my python program because now it only runs in Idle and a command line and what software packages can I use and where can I get them? Thanks.
The GuiProgramming page in the Python wiki has a good overview of the different options you have.
The two most interesting toolkits for use with python are probably PyQt4 or wxPython.
They are both open source, cross platform and well documented, and they both have gui builders available (Qt Designer and wxGlade. Keep in mind that developing closed source software with QT requires a license, both for QT and the python bindings.
We started down the path of wxPython a few years ago and found it to be quite easy to do for simple, quick and dirty app. However, you are not going to get something you can put on the modern desktop. So we switched to WinForms and Python.Net and haven't looked back since. It's fairly easy to get going and you get all the power and support of rich windows UI with .NET.
One thing not mentioned yet is that Tkinter is included in the standard library.
In most cases all other gui toolkits will require additional installs.
Tkinter isn't pretty, but it gives you the basics. And if you don't want to worry about additional setup, this is your best choice.
My personal preference is wxpython. It has many of the standard widgets you expect from a gui toolkit and a native look.