Eingaben vereinheitlichen: KeyCodes, event.keysym
Verfasst: Dienstag 30. September 2014, 13:51
Bin nun noch mal bei dem Problem von http://www.python-forum.de/viewtopic.php?f=1&t=34443
Wobei PyGame erstmal raus ist... Also nochmal ein neuer Thread:
Also es geht um Tastatur eingaben zwischen Windows und Linux...
Bisher habe ich es so gemacht:
Nur der keycode ist zwischen Linux/Windows nicht gleich. z.B. bei den Pfeiltasten.
Nun könnte ich event.keysym nehmen. Dort erhält man Wörter der Tasten, z.b.:
Theoretisch könnte man anscheinend einfach immer event.keysym nehmen und gut oder?
Mich stört allerdings, das darin auch normale ASCII Zeichen als Wörter ausgeschieben sind
Nun überlege ich das zu machen:
Wobei 64000 einfach nur mal so gesetzt ist.
Woher kommen eigentlich diese keysym Wörter? In tkinter.constants sind die ja nicht. Sind die wirklich überall gleich?
Wobei PyGame erstmal raus ist... Also nochmal ein neuer Thread:
Also es geht um Tastatur eingaben zwischen Windows und Linux...
Bisher habe ich es so gemacht:
Code: Alles auswählen
char_or_code = event.char or event.keycodeNun könnte ich event.keysym nehmen. Dort erhält man Wörter der Tasten, z.b.:
Code: Alles auswählen
event.char: 'a' event.keycode: 65 event.keysym: 'a' event.keysym_num: 97
event.char: 'b' event.keycode: 66 event.keysym: 'b' event.keysym_num: 98
event.char: 'c' event.keycode: 67 event.keysym: 'c' event.keysym_num: 99
event.char: '' event.keycode: 16 event.keysym: 'Shift_L' event.keysym_num: 65505
event.char: 'A' event.keycode: 65 event.keysym: 'A' event.keysym_num: 65
event.char: 'B' event.keycode: 66 event.keysym: 'B' event.keysym_num: 66
event.char: 'C' event.keycode: 67 event.keysym: 'C' event.keysym_num: 67
event.char: '' event.keycode: 37 event.keysym: 'Left' event.keysym_num: 65361
event.char: '' event.keycode: 38 event.keysym: 'Up' event.keysym_num: 65362
event.char: '' event.keycode: 39 event.keysym: 'Right' event.keysym_num: 65363
event.char: '' event.keycode: 40 event.keysym: 'Down' event.keysym_num: 65364
event.char: '' event.keycode: 16 event.keysym: 'Shift_R' event.keysym_num: 65506
event.char: '\r' event.keycode: 13 event.keysym: 'Return' event.keysym_num: 65293
event.char: '\x08' event.keycode: 8 event.keysym: 'BackSpace' event.keysym_num: 65288
event.char: '\x1b' event.keycode: 27 event.keysym: 'Escape' event.keysym_num: 65307
event.char: '' event.keycode: 16 event.keysym: 'Shift_L' event.keysym_num: 65505
event.char: '!' event.keycode: 49 event.keysym: 'exclam' event.keysym_num: 33
event.char: '"' event.keycode: 50 event.keysym: 'quotedbl' event.keysym_num: 34
event.char: '§' event.keycode: 51 event.keysym: 'section' event.keysym_num: 167
event.char: '' event.keycode: 112 event.keysym: 'F1' event.keysym_num: 65470
event.char: '' event.keycode: 113 event.keysym: 'F2' event.keysym_num: 65471
event.char: '' event.keycode: 114 event.keysym: 'F3' event.keysym_num: 65472
event.char: '' event.keycode: 36 event.keysym: 'Home' event.keysym_num: 65360
event.char: '' event.keycode: 35 event.keysym: 'End' event.keysym_num: 65367
event.char: '' event.keycode: 46 event.keysym: 'Delete' event.keysym_num: 65535
event.char: '' event.keycode: 45 event.keysym: 'Insert' event.keysym_num: 65379
event.char: '' event.keycode: 33 event.keysym: 'Prior' event.keysym_num: 65365
event.char: '' event.keycode: 34 event.keysym: 'Next' event.keysym_num: 65366Mich stört allerdings, das darin auch normale ASCII Zeichen als Wörter ausgeschieben sind
Nun überlege ich das zu machen:
Code: Alles auswählen
if event.keysym_num>64000:
inkey=event.keysym
else:
inkey=event.charWoher kommen eigentlich diese keysym Wörter? In tkinter.constants sind die ja nicht. Sind die wirklich überall gleich?