Hi,
ich habe ein Frame, darauf ein Panel und darauf mehrere StaticText und mehrere TextCtrl. Die textCtrl sind Read-Only, nachdem man etwas gemacht hat, aendern sich die Werte in den TextCtrl. Die Frage ist nun: Wie kriege ich es hin, dass die aktuellen Werte auch ausgegeben werden ?
ist Refresh die richtige Methode ? Muss ich das Frame refreshen, das panel oder auch jedes TextCtrl ? oder nur die TextCtrl ? Was ist die richtige vorgehensweise ?
Btw., wxPython erinnert mich stark an Swing aber es ist sehr viel leichter zu benutyzen
Wenn die TextCtrl ReadOnly sind kann man dann aber schon noch per setValue die Werte aendern oder ?
Danke
TextCtrl aktualisieren lassen
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo maxip!maxip hat geschrieben:Wenn die TextCtrl ReadOnly sind kann man dann aber schon noch per setValue die Werte aendern oder ?
Ja!
Und hier stehen die Details:
- http://docs.wxwidgets.org/stable/wx_wxt ... rlsetvalue
- http://docs.wxwidgets.org/stable/wx_wxw ... dowrefresh
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo maxip!
``txtctrl.SetModified()`` hat damit nichts zu tun. Dass es dadurch bei dir upgedated wird, ist nur Zufall.
Ein ``Refresh()`` sollte normalerweise schon genügen. Das ``Update()`` schiebt man nach, wenn der Neuaufbau unbedingt sofort sein muss.
Wenn sich die Anzeige (z.B. in Schleifen) sehr oft hintereinander ändert, dann kannst du auch mit ``wx.YieldIfNeeded()`` experimentieren. Dann wird dem Update genug Zeit für den GUI-Aufbau gelassen.
mfg
Gerold
Code: Alles auswählen
txtctrl.Refresh()
txtctrl.Update()
Ein ``Refresh()`` sollte normalerweise schon genügen. Das ``Update()`` schiebt man nach, wenn der Neuaufbau unbedingt sofort sein muss.
Wenn sich die Anzeige (z.B. in Schleifen) sehr oft hintereinander ändert, dann kannst du auch mit ``wx.YieldIfNeeded()`` experimentieren. Dann wird dem Update genug Zeit für den GUI-Aufbau gelassen.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo maxip!maxip hat geschrieben:reicht es, refresh und upate auf das Panel zu machen, dass die TextCtrl enthaelt, oder muss es unbedingt auf die die einzelnen textCtrl gemacht werden ?
Jetzt mal Klarton: Lies das --> http://docs.wxwidgets.org/stable/wx_wxw ... dowrefresh
Wenn ich schon Links zur Dokumentation raus suche, dann erwarte ich, dass die dahinter verborgenen Seiten/Textstellen auch gelesen werden. Außerdem kann man solche Dinge in kürzester Zeit selber ausprobieren/herausfinden.
Wie verhält es sich, wenn man nur ``Refresh()`` verwendet?
Wie verhält es sich, wenn man ``Refresh()`` und ``Update()`` verwendet?
Wie verhält es sich, wenn man nur ``Update()`` verwendet?
Wie verhält es sich, wenn man nur ``wx.YieldIfNeeded()`` verwendet?
Wie verhält es sich, wenn man das ``Update()`` des Containers ausführt? Ist es notwendig, trotzdem alle TextCtrls durchzulaufen?
Das sind alles Fragen, die man nicht stellen muss. So etwas probiert man aus.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.