Tastendruck abfangen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
thonix
User
Beiträge: 47
Registriert: Samstag 12. August 2006, 00:06

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
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

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?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
JanDMC
User
Beiträge: 95
Registriert: Donnerstag 23. September 2004, 19:35
Kontaktdaten:

Hey... es gibt ein Modul mit dem man Tasten + Maus etc anfangen kann... google mal nach pyhook ...
mfg Jan
joa nää python is toll :D
Antworten