Schrift
[thread]5196[/thread]

Event Verständnis Problem



<< >> 5 Einträge, 1 Seite
BratHering
 2006-05-31 23:58
#45525 #45525
User since
2005-04-28
155 Artikel
BenutzerIn
[default_avatar]
Hallo,

in meinem Tk Programm habe ich Funktionen, die von Tk Widgets aufgerufen werden.
Diese Funktionen ändern pro Funktions Aufruf mehrere Sachen an der Tk Oberfläche (Label-Text, etc.) nacheinander.
Jedoch sieht man die Änderungen an der Oberfläche erst wenn die Event Funktion komplett abgearbeitet worden ist, d.h. erst, wenn alle Änderungen gemacht worden sind und die Funktion fertig ist, bloppen sämtliche Änderungen auf einmal auf, anstatt nach und nach zu kommen.
Warum dieses Tk Verhalten, das war mir bisher nicht bekannt?
Kann mir das jemand erklären bzw. kann man dieses Verhalten ändern?


MfG
Brathering
Ishka
 2006-06-01 00:38
#45526 #45526
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das liegt daran, daß in Tk die Sachen nicht parallel, sondern sequentiell abgearbeitet werden, dh. wenn deine Routine das alles ändert, passiert an Tk nichts gleichzeitig nebenher.

Aber du kannst jederzeit deine Fenster aktualisieren mit $fenster->update; (für jedes MainWindow getrennt)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
BratHering
 2006-06-01 01:01
#45527 #45527
User since
2005-04-28
155 Artikel
BenutzerIn
[default_avatar]
Dann muss ich das wohl einfach so hinnehmen... :(
BratHering
 2006-06-01 09:20
#45528 #45528
User since
2005-04-28
155 Artikel
BenutzerIn
[default_avatar]
[quote=Ishka,31.05.2006, 22:38]Das liegt daran, daß in Tk die Sachen nicht parallel, sondern sequentiell abgearbeitet werden, dh. wenn deine Routine das alles ändert, passiert an Tk nichts gleichzeitig nebenher.

Aber du kannst jederzeit deine Fenster aktualisieren mit $fenster->update; (für jedes MainWindow getrennt)[/quote]
Oh, die Sache mit dem $widget->update hat geholfen.

Vielen Dank! :)
renee
 2006-06-01 10:31
#45529 #45529
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Da das eine häufige Frage ist, habe ich mal einen Wiki:Artikel dazu erstellt.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 5 Einträge, 1 Seite



View all threads created 2006-05-31 23:58.