Tk::Dialog ist ein modaler Dialog. Das Hauptfenster von Perl/Tk wird so lange blockiert, bis der Dialog beantwortet wurde. Wer einen nicht-modalen Dialog sucht, der ist mit Tk::DialogBox besser beraten.
Das Bild, welches per -bitmap
angegeben wird, ist optional. Es kann ein in Tk eingebautes Widget sein oder ein benutzerdefiniertes Bild. Eine Liste der eingebauten Bitmaps gibt es auf der Tk::Bitmap-Seite.
Der Beispiel-Quellcode aus dem der Screenshot erstellt wurde sieht wie folgt aus:
#!/Perl/bin/perl
=comment
dialog.pl
Zeigt einen modalen Dialog mit Ja- und Nein-Button.
=cut
use strict;
use warnings;
use Tk;
use Tk::Dialog;
my $mw = tkinit(-width => 200, -height => 200);
$mw->packPropagate(0);
# Dialog-Widget erstellen
my $d = $mw->Dialog(
-title => 'Info zu modalem Dialog!',
-text => 'Modaler Dialog - der Dialog blockiert die Interaktion mit dem Hauptfenster.',
-bitmap => 'info',
-buttons => ['Ok', 'Ist mir egal'],
-default_button => 'Ist mir egal',
);
# Button erstellen, durch den der Dialog angezeigt wird.
$mw->Button(
-text => 'Dialog anzeigen',
-command => sub{
if( my $response = $d->Show() ) {
print "Antwort: " . $response . "\n";
}else{
print "Der Dialog wurde nicht über einen der Buttons beantwortet.";
}
},
)->pack;
$mw->MainLoop();