Caps Lock Symbol

Plattformunabhängige GUIs mit wxWidgets.
Antworten
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Hallo. 2 Fragen:

1. Gibt es irgendeine spezielle Funktion, dass in der Statusleistei ein Symbol angezeigt wird, welches leuchet (oder irgendwie anders) signalisiert dass Capslock aktiviert ist?

2.
Wie kann ich die einzelnen Abschnitte in der größe Ändern? Am besten wäre eine %-Angabe. Ist das möglich?
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

1.

Code: Alles auswählen

import win32api
import win32con

print "CapsLock is: %s" % ('off', 'on')[win32api.GetKeyState(win32con.VK_CAPITAL)]
Das Ergebnis von win32api.GetAsyncKeyState selber in die Leiste integrieren.

2. ... *schulterzuck* :D

---
EDIT: Konstante für CapsLock in win32con im Snippet erweitert
Zuletzt geändert von Masaru am Mittwoch 28. März 2007, 09:07, insgesamt 1-mal geändert.
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Geht es auch Plattformübergreifend?
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Hm ... es könnte mit wxPython selbst auch funktionieren.

Es gibt die wx.KeyEvent Klasse, in welcher auch der Keycode "WXK_CAPITAL" (war CapsLock sein müsste) sind befindet.

Auf das Drücken dieser Taste könnte man z.B. Abfragen mit den KeyEvents.

Letztendlich darf man aber nicht vergessen, dass die CapsLock Taste je nach Tastatur, Treiber, kultureller Sprachregion, etc. theoretisch andere KeyCodes haben kann.

Neben Encoding eines der größten Herrausforderungen für Softwarearchitekten *hehe*.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi!

Es geht einfacher:

Code: Alles auswählen

>>> import wx
>>> wx.GetKeyState(wx.WXK_NUMLOCK)
True
>>> wx.GetKeyState(wx.WXK_SCROLL)
False
>>> wx.GetKeyState(wx.WXK_CAPITAL)
False
>>> 
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten