Re: mehrere Fenster und exec()
David Haller <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Hallo,
Am Thu, 10 Nov 2005, Juergen Sachs schrieb:
>Ah jetzt ja, hide gleich geschlossen. Jetzt wird einiges klarer. Ich ging von
>deleted = geschlossen aus.
Weder noch (oder zumindest sehr missverstaendlich formuliert).
"hide" == versteckt -> Fenster ist nur "unsichtbar"
"deleted" == geloescht -> Fenster existiert nicht mehr
Ist ein Fenster "hidden", dann existiert es genauso wie zuvor (auch ohne
"show" o.ae.), es koennen dessen Inhalte nach wie vor manipuliert werden,
es wird _NUR_ nicht dargestellt.
Ist es "deleted", ist es weg (oder sollte es zumindest sein).
Termina koennen je nach Toolkit variieren. Beispiel:
$ perl -e 'use Tk; use Data::Dumper;
my $mw = new MainWindow();
$mw->Button( -text => "Hide",
-command => sub { $mw->UnmapWindow();
print Dumper($mw);
sleep 5;
$mw->MapWindow();
print Dumper($mw);
}
)->pack;
$mw->Button( -text => "Quit",
-command => sub { $mw->destroy(); print Dumper($mw); }
)->pack;
Tk::MainLoop;'
Das eigentliche "MainWindow" (das nach dem destroy noch uebrig ist)
wird erst spaeter von perl/Tk abgeraeumt... Das Beispiel zeigt aber
den Unterschied zwischen show()/hide() (hier MapWindow() /
UnmapWindow()) und "new()/delete()" (hier new() / destroy())...
Zu beachten ist noch, dass Tk::MainLoop[1] bzw. perl selbst noch
diverses erzeugt und wieder aufraeumt usw. was bei anderen Toolkits
und Programmiersprachen ggfs. per Hand zu erledigen ist (u.a. ist das
saubere Beenden nach dem "destroy()" des Tk::MainWindow implizit, das
script geht aber nach dem "MainLoop" noch weiter, vgl. [2]).
-dnh
[1] das auch ohne das 'Tk::' geschrieben werden kann, da von Tk
exportiert
[2] Fuege nach dem MainLoop noch ein 'exit 42;' ein und vergleiche per
'echo $?' den exitstatus des perlscriptes mit und ohne das 'exit
42;' am Ende...
# ...
Tk::MainLoop;
exit 42;'
--
"Wer nicht merkt das er Merkbefreit ist, dem sollte man eine
Merkbefreiung fÃŒr's Leben verpassen. D.B.D.D.H.K.P. Das macht
Spass und tut nicht weh." [WoKo in dag°]
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
[email protected]
Um eine Liste aller verfÃŒgbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]