mathisdt
23-04-2006, 18:32
Hallo!
Ich möchte in einem Perl-Skript, welches alle 2 Sekunden Daten pollt, bei bestimmten Daten eine Dialogbox anzeigen, und das in Gtk2. Dazu habe ich folgendes geschrieben:
use Gtk2 '-init';
while(1) {
sleep 2;
# Daten einlesen und $ist_wichtig setzen
if ($ist_wichtig) {
$dialog = Gtk2::Dialog->new ('Info',
undef,
[qw/no-separator modal destroy-with-parent/],
'OK' => '0');
my $label = Gtk2::Label->new ();
$label->set_markup('NACHRICHT IN PANGO-MARKUP');
my $vbox = Gtk2::VBox->new(FALSE,5);
$vbox->pack_start ($label, FALSE, FALSE, 0);
$vbox->set_border_width(25);
$dialog->vbox->add($vbox);
$label->show;
$vbox->show;
$dialog->set_position('center-always');
$dialog->run; # wartet bis der Benutzer klickt
$dialog->destroy; # hier soll der Dialog verschwinden
}
}
Mein Problem ist, dass die Dialogbox nicht verschwindet, wenn der Benutzer die Meldung wegklickt! Das Skript läuft weiter und pollt fleißig, nur das Fenster ist immer noch da mit gedrücktem Button. Wie kann man das Fenster endgültig entsorgen?
Mathis :confused:
Edit: Wenn die Schleife wieder wichtige Infos findet, ersetzt das neue Fenster das nicht verschwundene alte!
Ich möchte in einem Perl-Skript, welches alle 2 Sekunden Daten pollt, bei bestimmten Daten eine Dialogbox anzeigen, und das in Gtk2. Dazu habe ich folgendes geschrieben:
use Gtk2 '-init';
while(1) {
sleep 2;
# Daten einlesen und $ist_wichtig setzen
if ($ist_wichtig) {
$dialog = Gtk2::Dialog->new ('Info',
undef,
[qw/no-separator modal destroy-with-parent/],
'OK' => '0');
my $label = Gtk2::Label->new ();
$label->set_markup('NACHRICHT IN PANGO-MARKUP');
my $vbox = Gtk2::VBox->new(FALSE,5);
$vbox->pack_start ($label, FALSE, FALSE, 0);
$vbox->set_border_width(25);
$dialog->vbox->add($vbox);
$label->show;
$vbox->show;
$dialog->set_position('center-always');
$dialog->run; # wartet bis der Benutzer klickt
$dialog->destroy; # hier soll der Dialog verschwinden
}
}
Mein Problem ist, dass die Dialogbox nicht verschwindet, wenn der Benutzer die Meldung wegklickt! Das Skript läuft weiter und pollt fleißig, nur das Fenster ist immer noch da mit gedrücktem Button. Wie kann man das Fenster endgültig entsorgen?
Mathis :confused:
Edit: Wenn die Schleife wieder wichtige Infos findet, ersetzt das neue Fenster das nicht verschwundene alte!