Seite 1 von 1

Tastendruck abfangen

Verfasst: Dienstag 26. August 2008, 23:11
von thonix
Hallo zusammen,

ich möchte in meinem Programm abbilden das wenn es gestartet wird alle Tastendrücke abgefangen werden (bzw in einer Funktion verarbeitet werden).

Das Programm funktioniert fast. Nach dem starten des Programms muss zuerst ein klick in das Fenster gemacht werden. Kann ich das irgendwie umgehen - d.h. das dieses Programm sofort aktiv nehmen.

Ich dachte das dies von SetFocus() gemacht wird - aber Fehlanzeige :(

Code: Alles auswählen

import wx

App = wx.PySimpleApp()
class myframe(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Test Frame")
        self.panel1 = wx.Panel(id = 10, name = 'panel1', parent = self, 
pos = wx.Point(0, 0), size = wx.Size(373, 218))
        self.SetFocus()
        self.Show(1)
        wx.EVT_CHAR(self.panel1, self.OnChar)

    def OnChar(self, event):
        print "keypress!"
        print event.KeyCode
        event.Skip()
       
frame = myframe()
App.MainLoop()
Hatte da jemand einen Einfall für mich ?

Thonix

Verfasst: Mittwoch 27. August 2008, 08:45
von Rebecca
Ich glaube, SetFocus ist nur dafuer da, den Fokus innerhalb der Widgets deiner Anwendung zu setzen.

Wenn du unter Windows arbeitest, schau mal hier: http://www.python-forum.de/topic-8682.html

Unter Linux ist ja eigentlich der Window Manager fuer das Fokussieren der Fenster zustaendig, nicht die Anwendung. Aber ich weiss, dass es Anwendungen gibt, die es irgendwie schaffen, den Fokus zu schnappen (auch wenn ich immer versuche, ein Bogen um solche Anwendungen zu machen...) Keine Ahnung, ob's da irgeandwelche Window Manager Hints fuer gibt?

Verfasst: Donnerstag 28. August 2008, 00:01
von JanDMC
Hey... es gibt ein Modul mit dem man Tasten + Maus etc anfangen kann... google mal nach pyhook ...
mfg Jan