Seite 1 von 1

Eingaben erkennen

Verfasst: Freitag 19. März 2010, 14:49
von Andyh
Hallo

Umfeld: Ubuntu/Gnome/gtk/Xserver

Ist es möglich zu erkennen ob man in ein Entry / TextView oder ein anderes Widget geklickt hat in das man text eingeben kann und das global in jedem Programm.

Ich will so etwas wie Windows für Touchscreens hat programmieren:
Wenn man dort in ein Widget klick (egal in welchem Programm) öffnet sich die Virtuelle Tastatur, ich finde das recht praktisch, weil man nicht immer die Virtuelle Tastatur ein und ausblenden muss.

Könnte ja irgend wie mit dem Xserver (xlib) gehen.

Gruß
Andyh

Re: Eingaben erkennen

Verfasst: Freitag 19. März 2010, 15:10
von ms4py
Andyh hat geschrieben:Ist es möglich zu erkennen ob man in ein Entry / TextView oder ein anderes Widget geklickt hat in das man text eingeben kann und das global in jedem Programm.
Sicher, dazu gibt es das Signal "button-release-event", das bei jedem Widget ausgelöst wird.
http://library.gnome.org/devel/pygtk/st ... ease-event

Verfasst: Freitag 19. März 2010, 15:22
von Andyh
hallo

Du hast mich falsch verstanden.

Beispiel:
-ich habe einen Touchscreen
-öffne den Firefox
-klicke mit meinem Finger/Stift in die Adressleiste
-jetzt öffnen sich die Virtuelle Tastatur

Wenn ich selber ein Programm schreibe kann ich die Widgets ja mit Events belegen, aber nicht bei Programmen wie Gedit, Firefox, usw...

gruß
Andyh

Verfasst: Freitag 19. März 2010, 22:30
von Andyh
Hallo

Ich habe was gefunden.
Es müsste das Event FocusIn in der Xlib sein, nur bekomme ich es nicht.

Code: Alles auswählen

import Xlib
import Xlib.X as X
import Xlib.display as display

dsp = display.Display()
screen = dsp.screen()
root = screen.root
root.change_attributes(event_mask = (X.FocusChangeMask))

dsp.flush()
while 1:
    e = root.display.next_event()
    print e
Gruß
Andyh