Setting X properties in tkinter or wxPython

T

Thorkild Stray

Hi!

I am trying to embed ghostscript into a suitable widget so that it renders
it's image there.

This is support by ghostscript by setting an environment variable that
indicates what window you want it to write to, and then setting a property
on that window (aptly named "GHOSTVIEW"). I am having problems finding a
way of adding this X property. I've tried both wxPython and tkinter
(pygtk2 wouldn't easily give me the x window id without patching it), but
I can't find a suitable way of adding such a property.
Ghostscript needs to read information from that property before drawing
the contents.

Anybody got an idea?
 
C

Chris King

Anybody got an idea?

I'm not very familiar with wxPython, but it seems that even native Tk
can't set window properties (though the Tk C library can). Perhaps an
alternative is to use python-xlib
(http://python-xlib.sourceforge.net/). I'm even less familiar with
that, but the functions Display.create_resource_object and
Window.change_property look useful. Note that the Tk C library warns
against using native X calls in place of its functions.
 
T

Thorkild Stray

Den Wed, 23 Jun 2004 11:41:43 -0700, skrev Chris King:
I'm not very familiar with wxPython, but it seems that even native Tk
can't set window properties (though the Tk C library can). Perhaps an
alternative is to use python-xlib
(http://python-xlib.sourceforge.net/). I'm even less familiar with
that, but the functions Display.create_resource_object and
Window.change_property look useful. Note that the Tk C library warns
against using native X calls in place of its functions.

Yes, I thought about using python-xlib, or maybe just python-ctypes, but
I am a little bit nervous about getting it to things correctly according
to the GUI-package.

I managed to do what I wanted with GTK2, though. I prototyped it in
Gtk2-perl, but the same should be doable in PyGTK2 (the correct way of
doing it is to call gtk.gdk.Window.property_change() to set the raw X
property).

My problem with PyGTK2 is the surprising problems I am having with getting
a hold of the window X identifier. It seems that they removed
gtk.gdk.window.xid somewhere between 1.99 and 2.0, and just added it back
in the 2.3-series (I believe it was added 20th of April, 2004).

There is a patch available on how to enable this for older versions
described at:

http://www.daa.com.au/pipermail/pygtk/2003-March/004641.html

My problem is that I would either have to demand that the user patches his
pygtk2 (not likely), or to demand that they install bleeding edge
unstable versions of pygtk2. So now I am looking for a way around this..
Maybe I could either do it in embedded C, or by calling xwininfo on the
window and find it there.. both quite ugly workarounds. :-(
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top