472,787 Members | 1,477 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,787 software developers and data experts.

PyGTK vs. wxPython

Hi all...

I think wxPython is much better than PyGTK. First of all, PyGTK needs
the GTK runtime installed, whereas wxPython is entirely Python's
modules, so It facilitates the apps' distribution. Also, PyGTK uses
specific controls or widgets of GTK, while wxPython uses native
controls of the platform where the app is running.

I'm learning both, but at a slow step, so I want to know all the
comments about this subject in this group.

I heard about Glade to make the graphic layout of the app and then
export it as XML. Then, it connects to PyGTK. The problem I see is that
What if you want to refer to a state of a specific radiobutton of a
radobutton's group? It seems to be very troublesome.

Please, post any comments about the pros and cons of each library, and
the proper way to construct the graphic layout (generating XML through
Glade, or by hand-code). Thanks.

Daniel

Jul 19 '05 #1
22 5679
On 2005-04-25, dcrespo <dc*****@gmail.com> wrote:
Hi all...

I think wxPython is much better than PyGTK. First of all, PyGTK needs
the GTK runtime installed, whereas wxPython is entirely Python's
modules,


Huh? wxPythonGTK requires GTK runtimes as well:

$ ldd libwx_gtk2_core-2.5.so> /tmp/foo
linux-gate.so.1 => (0xffffe000)
libz.so.1 => /lib/libz.so.1 (0x4028d000)
libdl.so.2 => /lib/libdl.so.2 (0x4029e000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x402a1000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x40585000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x405fa000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x40616000)
[...]

If you run wxPython on top of some other toolkit, then you'll
need that toolkit's runtimes instead of GTK.

--
Grant Edwards grante Yow! Yow! Those people
at look exactly like Donnie
visi.com and Marie Osmond!!
Jul 19 '05 #2
Grant Edwards wrote:
Huh? wxPythonGTK requires GTK runtimes as well:


He was probably talking about Windows, where wx toolkit uses native
(more or less...) controls.

But then, installing GTK runtime libraries on Windows is a one-click
job, there are automated installers for it.
Jul 19 '05 #3
Grant Edwards wrote:
On 2005-04-25, dcrespo <dc*****@gmail.com> wrote:

Hi all...

I think wxPython is much better than PyGTK. First of all, PyGTK needs
the GTK runtime installed, whereas wxPython is entirely Python's
modules,


Huh? wxPythonGTK requires GTK runtimes as well:

<snip>

Hello,

Guess he's talking about windows :

http://www.dropline.net/gtk/

You will already have a windowing toolkit on windows - mfc/win32.

BTW, I cheated and saw a windows related question from above also same
poster ;-)

Cheers,

Neil
--

Neil Benn
Senior Automation Engineer
Cenix BioScience
BioInnovations Zentrum
Tatzberg 46
D-01307
Dresden
Germany

Tel : +49 (0)351 4173 154
e-mail : be**@cenix-bioscience.com
Cenix Website : http://www.cenix-bioscience.com

Jul 19 '05 #4
On 2005-04-25, Ivan Voras <iv****@fer.hr> wrote:
Grant Edwards wrote:
Huh? wxPythonGTK requires GTK runtimes as well:
He was probably talking about Windows, where wx toolkit uses native
(more or less...) controls.


Ah -- I forgot that GTK was an option under Windows. The last
time I played with PyGTK was a couple years ago and the Win32
port wasn't done yet.
But then, installing GTK runtime libraries on Windows is a
one-click job, there are automated installers for it.


I suppose using native widgets should preserve the look and
feel users are used to.

--
Grant Edwards grante Yow! I had a lease on an
at OEDIPUS COMPLEX back in
visi.com '81...
Jul 19 '05 #5
dcrespo wrote:
Hi all...

I think wxPython is much better than PyGTK. First of all, PyGTK needs
the GTK runtime installed, whereas wxPython is entirely Python's
modules, so It facilitates the apps' distribution.
As already mentioned, it is not true. You will still need GTK
(on Linux, not on Windows).
Also, PyGTK uses
specific controls or widgets of GTK, while wxPython uses native
controls of the platform where the app is running.
Which has both pros and cons. wx unification isn't perfect (i had some
problems with drawing that required some workarounds specific to a
platform), it also doesn't allow you to really (or at least easy) use
platform specific functionality (GTK app can be easily convert to GNOME
app).
I'm learning both, but at a slow step, so I want to know all the
comments about this subject in this group.
Go to www.pygtk.org, there are many tutorials, faq and other documentation
and try it.
I heard about Glade to make the graphic layout of the app and then
export it as XML. Then, it connects to PyGTK. The problem I see is that
What if you want to refer to a state of a specific radiobutton of a
radobutton's group? It seems to be very troublesome.
Do not listen, just test it. For me glade is the best way to define user
interface. This is the way GUI should be created IMHO. You can access any
widget just by calling its name - you will find details in any glade
tutorial.
Please, post any comments about the pros and cons of each library, and
the proper way to construct the graphic layout (generating XML through
Glade, or by hand-code). Thanks.


I don't have much experience with GTK on Windows, but i really like on
Linux, way more then wx. It works great, is well documented (including
python specific issues) and possible GNOME integration might be great help.

--
Maciej "Fiedzia" Dziardziel (fiedzia (at) fiedzia (dot) prv (dot) pl)
www.fiedzia.prv.pl

Music is the art of thinking with sounds.
Jul 19 '05 #6
dcrespo wrote:
Hi all...

I think wxPython is much better than PyGTK. First of all, PyGTK needs
the GTK runtime installed, whereas wxPython is entirely Python's


And depending on your platform, wxPython also requires GTK installed.

wxWindows is a wrapper for different GUI toolkits. On Windows, it uses
the native API. On Linux, it tries to use GTK but fails to work most of
the time.

wxPython would indeed be a better choice if your applications are only
to run on a certain infamous legacy operating system from the
Pacific Northwest. The PyGTK is a better choice if you are writing for
Linux and want your application to also be able to run on windows.
wxWindows is *extremely* buggy on Linux where it is just a poor wrapper
for the GTK toolkit. In my experience, most supposedly portable multi
platform applications built around wxWindows which are supposed to run
on Linux simply don't run at all. Personally, I have no need to write
for Windows [or any way to test such code]. I know that the GTK toolkit
is available for Windows, and also now for OS X without the need for an
X server.

Just my $0.02
Jul 19 '05 #7
Hi all... Thank you for your answers...

wxPython, under Linux, tries to use GTK... A better way to say it is:
wxPython uses whatever it needs: under Windows, his API; under Linux,
his API (may imply the use of GTK or GNOME), etc...

Aparently, none of you has tried wxPython recently or properly.
wxPython is a cross-platform toolkit. Currently supported platforms are
32-bit Microsoft Windows, most Unix or unix-like systems, and Macintosh
OS X. Certainly, there may be Linux distributions where it doesn't run
well...
The PyGTK is a better choice if you are writing for
Linux and want your application to also be able to run on windows.


I want exactly the opossite: my apps must be developed for running
primarly under Windows but also be able to run on Linux.

So, tell me PyGTK (with or without Glade/w XML output) or entirely
Python code through wxPython?
Truely, what's the best for CROSS-platform for both Linux and Windows?
Not just for Linux or just for Windows, but for both.

Anyone who had used any a lot?

Thanks

Daniel

Jul 19 '05 #8
On 2005-04-26, dcrespo <dc*****@gmail.com> wrote:
Aparently, none of you has tried wxPython recently or properly.
Not so. I'm using it currently and have been using it for a
couple years now.
wxPython is a cross-platform toolkit. Currently supported platforms are
32-bit Microsoft Windows, most Unix or unix-like systems, and Macintosh
OS X. Certainly, there may be Linux distributions where it doesn't run
well...


I've no idea where that idea came from. It runs just fine on
all the Linux distro's I've tried it on.
The PyGTK is a better choice if you are writing for Linux and
want your application to also be able to run on windows.


I want exactly the opossite: my apps must be developed for
running primarly under Windows but also be able to run on
Linux.

So, tell me PyGTK (with or without Glade/w XML output) or
entirely Python code through wxPython? Truely, what's the best
for CROSS-platform for both Linux and Windows? Not just for
Linux or just for Windows, but for both.


Why don't you try them? I've only used PyGTK under Linux, so I
can't vouche for it under Windows. Under Linux it worked fine
for me. I've used wxPython under Linux and deployed on
Windows. Worked fine for me.

--
Grant Edwards grante Yow! If this is the DATING
at GAME I want to know your
visi.com FAVORITE PLANET! Do I get
th' MICROWAVE MOPED?
Jul 19 '05 #9
And what did you use for deploying either PyGTK and wxPython? In other
words, what were your workspace and logic of the development?

Thanks

Daniel

Jul 19 '05 #10
Aaaaaaand: which do you prefer?

Daniel

Jul 19 '05 #11
On 2005-04-27, dcrespo <dc*****@gmail.com> wrote:
And what did you use for deploying either PyGTK and wxPython? In other
words, what were your workspace and logic of the development?


To whom is this question addressed?

I suggest you quote properly when replying in order to give
your question the context required to answer it.

--
Grant Edwards grante Yow! Am I elected yet?
at
visi.com
Jul 19 '05 #12
On 2005-04-27, dcrespo <dc*****@gmail.com> wrote:
Aaaaaaand: which do you prefer?


Neither particularly. I'm using wxPython because GTK for
windows wasn't ready three years ago when I initially had to
write my first Windows application. If I evaluated both of
them again today, I might choose GTK, and I might not.

--
Grant Edwards grante Yow! INSIDE, I have the
at same personality disorder
visi.com as LUCY RICARDO!!
Jul 19 '05 #13
If you see carefully, that question was for you too, because the reply
is at the same level as the one that says "Aaaaaaand: which do you
prefer?" :)

Daniel

Jul 19 '05 #14
On 25 Apr 2005 08:56:23 -0700, dcrespo <dc*****@gmail.com> wrote:
Hi all...

I'm learning both, but at a slow step, so I want to know all the
comments about this subject in this group.


Personally, I like pyGTK more because the docs are better. There's
nothing I hate more than trying to use an API that's poorly
documented, and wxPython's is horrid. The API docs are for C++ with an
occasional comment about Python, and the examples are all done with an
obsolete API that has since been updated.

I've found wxPython very frustrating for these reasons, whereas
PyGTK's docs are up-to-date and well done, easy to work with.

Maybe the wxPython people think their docs are good, but likely
they've forgotten how well they already know the API. They need to
take the time to update them.

Mike

--
Michael P. Soulier <ms******@gmail.com>
http://www.digitaltorque.ca
http://opag.ca python -c 'import this'
Jul 19 '05 #15
it's not quite true since the latest stable release (2.6.0.0)

see the new wx doc (it's generated with epydoc so it's not for C++):
http://www.wxpython.org/docs/api/

i used wxPython with XRCed a few times and i liked the way it works
(worked under linux and win as well for me)

nsz

Jul 19 '05 #16
Szabolcs Nagy wrote:
it's not quite true since the latest stable release (2.6.0.0)

see the new wx doc (it's generated with epydoc so it's not for C++):
http://www.wxpython.org/docs/api/

i used wxPython with XRCed a few times and i liked the way it works
(worked under linux and win as well for me)


+1. I've had a lot of success with XRCed, but no success with wxGlade.
The UI in XRCed needs polish but it's easy enough to use. Also,
wxGlade wants to spew generated Python code, while XRCed generates a
nice resource file that wx can load easily.

Shane
Jul 19 '05 #17
On 2005-04-27, dcrespo <dc*****@gmail.com> wrote:
If you see carefully, that question was for you too, because the reply
is at the same level as the one that says "Aaaaaaand: which do you
prefer?" :)


You're assuming that everybody's newsreader displays things in
the same manner yours does. You're wrong: they don't.

--
Grant Edwards grante Yow! Maybe we could paint
at GOLDIE HAWN a rich PRUSSIAN
visi.com BLUE --
Jul 19 '05 #18
Correct me if I'm wrong: XRCed doesn't allow to do MDI Parent and Child
frames, but simple apps only.
For what you wouldn't use it? And instead, what would you use instead?
GUI Hand coding?

Daniel

Jul 19 '05 #19
I forgot to mention in my previous post that the best thing in wxPython
is the wxPython demo. It helped me a lot. Browsing through the examples
usually faster than browsing through the api doc.

About XRCed:
I put every static components of the window layout in an xml file with
XRCed
(not static components: buttons moving around, changing labels ...)

Generally my code looks like:

import wx
import wx.xrc

class Frame(wx.Frame):
def __init__(self, parent, resource):
w = resource.LoadFrame(parent, 'FrameName')
self.PostCreate(w)
self.SetIcon(wx.Icon('myapp.ico', wx.BITMAP_TYPE_ICO))

...
#lots of init code here

...
#event handlers here
class App(wx.App):
def OnInit(self):
resource = wx.xrc.XmlResource('myapp.xrc')
self.f = Frame(None, resource)
self.f.Show()
return True

if __name__ == '__main__':
app = App()
app.MainLoop()

Jul 19 '05 #20
Ok, I get the point. So, when a dynamic component comes up, It can be
handled importing from an XRC file?
I have to develop a complete MDI app, so I'm realizing that I will get
ride of hand-coding it.

Daniel

Jul 19 '05 #21
On 27 Apr 2005 11:31:00 -0700, dcrespo <dc*****@gmail.com> wrote:
Correct me if I'm wrong: XRCed doesn't allow to do MDI Parent and Child
frames, but simple apps only.
For what you wouldn't use it? And instead, what would you use instead?
GUI Hand coding?

Daniel


Looking at the docs, both wx.MDIChildFrame and wx.MDIParentFrame are
derived from wx.Frame. So, you *ought* to be able to create a
wx.Panel with one of the aforementioned windows as its parent. When
wx.Frame is given a single child window, it expands that window to use
all of the available client space.

Really though, these questions are more suited for the wxPython mailing list.

jw
Jul 19 '05 #22
> Really though, these questions are more suited for the wxPython
mailing list.

Thank you very much for this acclaration :)

Jul 19 '05 #23

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Charlie Kim | last post by:
hi all. I made gnome applet with pyGTK and gnome application with wxPython. When I tried import wxPython application in pyGTK applet it crashed with message: GThread-ERROR **: GThread system...
5
by: carljohan.rehn | last post by:
I would like like to start doing some GUI-programming in Python, but don't know which library to choose. Tkinter seems a bit old. Correct me if I am wrong! The layout doesn't look as nice as for...
0
by: manatlan | last post by:
Hello, I'm new to pygtk (but i know wxpython very well) I'm trying to play with this example : http://www.pygtk.org/pygtk2tutorial/sec-CellRenderers.html#filelistingfig (the code is here :...
0
by: Sebastien Aubry | last post by:
Hello, I happen to use in my programs a widget based on Tkinter Canvas. It is Zinc (http://www.tkzinc.org), which allows to draw using transparency, gradients, translations, rotations, ... using...
25
by: TPJ | last post by:
GUI's etc: PyGtk on Windows "(...) So if someone develops mainly for X and just wants to make sure that it is not impossible to run on Windows, you can use PyGTK. (...)", July 2nd, 1999 pyGTK...
14
by: Rod W | last post by:
I'm just starting out on Python but my primary goal is to provide applications with some user interface (GUI). Can someone point me to a good comparison of whether I should use wxPython (with...
2
by: Tim N. van der Leeuw | last post by:
I tried to create a windows executable of a pygtk program. My first attempt worked, kinda, except that no themes were applied and no readable fonts were found by pango; so all letters where just...
0
by: Rina0 | last post by:
Cybersecurity engineering is a specialized field that focuses on the design, development, and implementation of systems, processes, and technologies that protect against cyber threats and...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
0
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
0
by: kcodez | last post by:
As a H5 game development enthusiast, I recently wrote a very interesting little game - Toy Claw ((http://claw.kjeek.com/))。Here I will summarize and share the development experience here, and hope it...
0
by: Taofi | last post by:
I try to insert a new record but the error message says the number of query names and destination fields are not the same This are my field names ID, Budgeted, Actual, Status and Differences ...
14
DJRhino1175
by: DJRhino1175 | last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this - If...
5
by: DJRhino | last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer) If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _ 310030356 Or 310030359 Or 310030362 Or...
0
by: Mushico | last post by:
How to calculate date of retirement from date of birth

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.