Erstmal danke für ne Antwort
ein funktionierendes und getestetes Beispiel:
Code: Alles auswählen
import wx
class MyProgram:
keycode = 0
y = 0
def __init__(self, panel):
panel.Bind(wx.EVT_CHAR, self.LogKeyEvent)
def LogKeyEvent(self, evt):
MyProgram.keycode = evt.GetKeyCode()
text = wx.StaticText(panel, -1, '')
text.MoveXY(0, MyProgram.y)
text.SetLabel(str(self.keycode))
MyProgram.y = MyProgram.y + 20
app = wx.PySimpleApp()
frame = wx.Frame(None, -1, "Test")
panel = wx.Panel(frame, -1)
MyProgram(panel)
frame.Show(True)
app.MainLoop()
Das Programm läuft und gibt untereinander den Tastenwert aus, aber eben nur so lange, bis das Panel zu Ende ist. Alles weitere ist dann vom Benutzer nicht mehr zu sehen. Und das will ich beheben.
Ich hab mir auch die Demofiles angeschaut von wxPython. Es gibt da ein File namens "KeyEvent". Da werden Tastendrücke ausführlich ausgewertet und in einer Liste untereinander geschrieben und das mit Scrollbalken!
Nur ist es eben nicht ganz das was ich suche. Ich würde das gern auf einem Panel realisieren.
Ein anderes File; "ScrolledPanel" setzt Scrollbalken auf ein Panel, jedoch ist deren Länge von vornherein festgelegt.
Da wird zum Beispiel eine Linie gezeichnet mit der Länge von 1000 Pixeln und dann ist eben der Scrollbalken auch so lang.
Warum wird bei LogKeyEvent jedesmal eine neue Instanz von Statictext
erzeugt?
Sry, aber das kann ich dir nicht genau sagen. Ich weiß nur, dass, wenn ich es so mache, genau das passiert was ich halt als Ausgabe haben will. Also das mehrere Textausgaben untereinander stehen.
Im Endeffekt habe ich ein sehr einfaches Ziel. Mit der normalen Konsole ist es in NullKommaNix zu erreichen.
Nur ist da eben ein Scrollbalken vorhanden und hier bei wxPython muss ich den noch selber definieren.
Grüße,
qweet