[pygtk] Geting a window/dialog to appear on a different screen.
Neil Dugan
pygtk at butterflystitches.com.au
Wed Jun 4 12:51:24 WST 2008
Hi,
I have a LTSP set-up here. I would like to put a window or dialog on =
the client screens, but I can't seem to get this to happen I am =
getting weird errors from gtk.main().
See attachment for the code.
The errors I am getting are
/media/tmp/testgui:43: GtkWarning: gdk_screen_get_display: assertion =
`GDK_IS_SCREEN (screen)' failed
gtk.main()
/media/tmp/testgui:43: GtkWarning: gdk_keymap_get_for_display: =
assertion `GDK_IS_DISPLAY (display)' failed
gtk.main()
/media/tmp/testgui:43: Warning: invalid (NULL) pointer instance
gtk.main()
/media/tmp/testgui:43: Warning: g_signal_connect_data: assertion =
`G_TYPE_CHECK_INSTANCE (instance)' failed
gtk.main()
Traceback (most recent call last):
File "/media/tmp/testgui", line 43, in <module>
gtk.main()
If I comment out line 20 =
"window.set_screen(display.get_screen(screen))" all works as expected.
Any help appreciated.
Regards Neil.
-------------- next part --------------
#!/usr/bin/python
import pygtk
pygtk.require('2.0')
import gtk
import sys
import os
import tempfile
import stat
import gobject
def Window(display_name,screen,filename):
print "display =3D %s screen %d" % (display_name,screen)
display =3D gtk.gdk.Display(display_name)
# create a window
window =3D gtk.Window(gtk.WINDOW_TOPLEVEL)
# make sure it appears on correct display
window.set_screen(display.get_screen(screen))
window.connect("destroy", lambda w: w.destroy())
window.filename =3D filename
# setup the widgets
vbox =3D gtk.VBox()
window.add(vbox)
label =3D gtk.Label(filename)
vbox.pack_start(label, False, False)
entry =3D gtk.Entry()
vbox.pack_start(entry, False, False)
button =3D gtk.Button('_Text')
vbox.pack_start(button, False, False)
button.connect('clicked', get_text, entry, window)
# display the window
window.show_all()
def get_text(widget, number, window) :
print "number =3D %s file =3D %s" % (number.get_text(), window.filename)
window.destroy()
=
if __name__ =3D=3D "__main__":
Window(':0',0,'/tmp/file.txt')
gtk.main()
More information about the pygtk
mailing list