[python] [pygtk] Global grab

Jan Martinek honza na dp.fce.vutbr.cz
Sobota Červen 30 02:44:13 CEST 2007


regnarG wrote:
> Mám následující problém, který se mi nepodařilo vyřešit ani po půlhodině
> googlování. Potřebuji v PyGtk provést globální grab, tj. omezit veškerý
> vstup kláves v rámci systému na jedno okno, jako to dělá např.
> XScreenSaver nebo gksu. Zkoušel jsem  gtk.gdk.keyboard_grab(w.window, 1,
> 0), ale bezúspěšně. Existuje nějaké řešení ?
> 

Zkus tohle (program bych nazval "napínavých deset sekund"):

#!/usr/bin/python
import gtk, gobject

def konec(entry):
     gtk.gdk.keyboard_ungrab()
     gtk.main_quit()

e = gtk.Entry()
e.show()
w = gtk.Window()
w.add(e)
w.show()
w.connect('destroy', gtk.main_quit)
def_win = gtk.gdk.get_default_root_window()
gtk.gdk.keyboard_grab(def_win, True)
gobject.timeout_add(10000, konec, e)
gtk.main()

Nevím proč, ale neukazuje se kurzor.
A když jsem si s tím hrál, tak jsem si dvakrát omylem zablokoval 
klávesnici a musel restartovat Xka.

--
Jan Martinek


Další informace o konferenci Python