Thread Fenster schließen: Ein aufgerufenes Fenster wieder schließe
(4 answers)
Opened by Olav_888 at 2004-05-04 17:15
Du solltest immer angeben, welches GUI-Toolkit du benutzt. Ich antworte einfach mal fuer Tk. Wenn du ein Fenster mit
Code (perl): (dl
)
$toplevel = $mainwindow->Toplevel Code (perl): (dl
)
$toplevel->destroy Code (perl): (dl
)
$toplevel->destroy if Tk::Exists($toplevel) Du kannst Widgets ausblenden, indem du die "forget"-Form des verwendeten Geometry-Managers verwendest. Also bei Verwendung von pack ist es packForget, bei grid ist es gridForget etc. Mit pack/grid/... kann man das Widget wieder sichtbar machen. Evtl. muss man die Position dann genau angeben --- in diesem Fall ist die Arbeit mit grid einfacher. Das Arbeiten mit forget hat den Nachteil, dass das Hauptfenster die Groesse anpasst --- das moechtest du wahrscheinlich nicht. Du kannst dafuer die Geometry-Propagation ausschalten ($toplevel->packPropagate(0)) oder eine feste Fenstergroesse angeben (evtl. reicht ein geometry-Aufrufen, evtl. muss aber auch minsize/maxsize/resizable gesetzte werden). Eine andere Moeglichkeit ist, ein anderes Widget ueber ein existierendes zu legen. Das kann man mit place relativ elegant machen: Code (perl): (dl
)
1 2 $widget = $toplevel->Label(...)->pack; $widget_drueber = $widget->Label(...)->place(-x => 0, -y => 0, -relwidth => 1, -relheight => 1); |