Seite 1 von 1
TextCtrl aktualisieren lassen
Verfasst: Dienstag 6. Mai 2008, 13:09
von maxip
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
Re: TextCtrl aktualisieren lassen
Verfasst: Dienstag 6. Mai 2008, 13:41
von gerold
maxip hat geschrieben:Wenn die TextCtrl ReadOnly sind kann man dann aber schon noch per setValue die Werte aendern oder ?
Hallo maxip!
Ja!
Und hier stehen die Details:
-
http://docs.wxwidgets.org/stable/wx_wxt ... rlsetvalue
-
http://docs.wxwidgets.org/stable/wx_wxw ... dowrefresh
mfg
Gerold

Verfasst: Dienstag 6. Mai 2008, 13:48
von maxip
OK, danke
und was waere der offizielle Weg um zu sagen, dass sich der Wert geanedert hat und das aktualisiert werden soll ?
Refresh und dann Update ? oder ware das unsauber ?
Verfasst: Dienstag 6. Mai 2008, 14:11
von maxip
Ok, self.newDevicesAtAllText.SetModified(True) reicht...
Verfasst: Dienstag 6. Mai 2008, 14:24
von gerold
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

Verfasst: Dienstag 6. Mai 2008, 14:35
von maxip
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 ?
Verfasst: Dienstag 6. Mai 2008, 16:50
von gerold
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 ?
Hallo maxip!
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
