Setting X properties in tkinter or wxPython

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Thorkild Stray

    Setting X properties in tkinter or wxPython

    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?

    --
    Thorkild
  • Chris King

    #2
    Re: Setting X properties in tkinter or wxPython

    > 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_p roperty look useful. Note that the Tk C library warns
    against using native X calls in place of its functions.

    Comment

    • Thorkild Stray

      #3
      Re: Setting X properties in tkinter or wxPython (solved in Gtk2)

      Den Wed, 23 Jun 2004 11:41:43 -0700, skrev Chris King:
      [color=blue][color=green]
      >> Anybody got an idea?[/color]
      > 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_p roperty look useful. Note that the Tk C library warns
      > against using native X calls in place of its functions.[/color]

      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:



      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. :-(

      --
      Thorkild

      Comment

      Working...