Seite 1 von 1

Tastenkombination ( ESC )

Verfasst: Sonntag 14. Januar 2007, 13:28
von rogen
Wie kann ich aus dem F4 ein ESC machen ?

mein Code

menubar = wx.MenuBar()
file = wx.Menu()
file.Append(101, '&spring \tF4', 'Open a new document')
menubar.Append(file, '&File')
wx.EVT_MENU(self, 101, self.springen )

mfg

gerhard rogen

Verfasst: Sonntag 14. Januar 2007, 14:44
von sape
Hi.

http://wxwidgets.org/manuals/2.8.0/wx_w ... menuappend
DEL or DELETE Delete key
INS or INSERT Insert key
ENTER or RETURN Enter key
PGUP PageUp key
PGDN PageDown key
LEFT Left cursor arrow key
RIGHT Right cursor arrow key
UP Up cursor arrow key
DOWN Down cursor arrow key
HOME Home key
END End key
SPACE Space
TAB Tab key
ESC or ESCAPE Escape key (Windows only)

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-
import wx


class MainFrame(wx.Frame):
    def __init__(self, parent=None, id=-1, title = "MyApp"):
         wx.Frame.__init__(self, parent, id, title)
         
         menubar = wx.MenuBar()
         file = wx.Menu()
         file.Append(101, '&spring \tESC', 'Open a new document')
         menubar.Append(file, '&File')
         self.SetMenuBar(menubar)
         wx.EVT_MENU(self, 101, self.springen )
     
    def springen(self, event):
        print "def springen(self, event):"

def main():
    app = wx.PySimpleApp()
    mf =  MainFrame()
    mf.Show()
    app.MainLoop()

if __name__ == "__main__":
    main()
lg

EDIT: Denk aber dran:
ESC or ESCAPE Escape key (Windows only)
Auf Linux läuft das dann höchstwahrscheinlich nicht (Es sei den die haben das geändert.).

Re: Tastenkombination ( ESC )

Verfasst: Sonntag 14. Januar 2007, 14:56
von gerold
rogen hat geschrieben:Wie kann ich aus dem F4 ein ESC machen?
Hi Gerhard!

Normalerweise so:

Code: Alles auswählen

        menubar = wx.MenuBar()
        mnu_file = wx.Menu()
        mnu_f_new = mnu_file.Append(-1, '&spring \tESC', 'Open a new document')
        self.Bind(wx.EVT_MENU, self.springen)
        menubar.Append(mnu_file, '&File')
        self.SetMenuBar(menubar)
Allerdings gibt es anscheinend einen Bug im wxPython 2.7-2.8 für Windows. Der hat damit evt. etwas zu tun, dass es nicht funktioniert.

Siehe: http://lists.wxwidgets.org/cgi-bin/ezml ... mahakmkncg

Du kannst dir in der Zwischenzeit vielleicht damit abhelfen:

Code: Alles auswählen

    def __init__(...):
        ...
        self.Bind(wx.EVT_CHAR_HOOK, self.on_self_char_hook)
    
    def on_self_char_hook(self, event):
        if event.GetKeyCode() == wx.WXK_ESCAPE:
            print "Es wurde ESC gedrueckt"
        event.Skip()
mfg
Gerold
:-)

Verfasst: Sonntag 14. Januar 2007, 15:30
von sape
file = wx.Menu()
BTW: Was mit gerade erst auffällt. keine Keywords überschreiben rogen.
Sorry hatte das bei deinem Code übersehn und das da so übernommen (Copy & Paste).

Im Zweifelsfall an PEP8 halten (wenn es den unbedingt ``list``, ``file``, etc heißen muss ) und dann so machen: ``file_``

Noch besser ist allerdings die Variante von Gerold mit ``mnu_file`` oder ``menu_file``, was es besser beschreibt.

lg