TextCtrl aktualisieren lassen

Plattformunabhängige GUIs mit wxWidgets.
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

TextCtrl aktualisieren lassen

Beitragvon maxip » Dienstag 6. Mai 2008, 13:09

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
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: TextCtrl aktualisieren lassen

Beitragvon gerold » Dienstag 6. Mai 2008, 13:41

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

Beitragvon maxip » Dienstag 6. Mai 2008, 13:48

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 ?
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

Beitragvon maxip » Dienstag 6. Mai 2008, 14:11

Ok, self.newDevicesAtAllText.SetModified(True) reicht...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Dienstag 6. Mai 2008, 14:24

Hallo maxip!

Code: Alles auswählen

txtctrl.Refresh()
txtctrl.Update()

``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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

Beitragvon maxip » Dienstag 6. Mai 2008, 14:35

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 ?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Dienstag 6. Mai 2008, 16:50

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder