Hallo,
ich habe mir eine kleine GUI geschrieben, via Glade, mit einem Gtk3::Window:
Beim Beenden soll vor dem Schließen des Fenster aber vor nicht gespeicherter Änderungen gewarnt werden. Über die Windowdekoration funktioniert mein Code schon (s.u.) aber ich habe auch ein Gtk3::MenuItem um das Fenster zu schließen, dies funktioniert nicht.
Das habe ich:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
sub on_Window_delete_event {
...
my ( $foo, ... ) = ...;
if ($foo) {
my $MessageDialog = Gtk3::MessageDialog->new(
$Window,
'destroy-with-parent',
'GTK_MESSAGE_QUESTION',
'GTK_BUTTONS_YES_NO',
"Sie haben %d nicht gespeicherte Änderungen, Fenster dennoch schießen", ...,
);
my $Response = $MessageDialog->run;
$MessageDialog->destroy;
given ($Response) {
when ("yes") { return Gtk3::EVENT_PROPAGATE; }
when ("no") { return Gtk3::EVENT_STOP; }
default { ; }
}
}
else {
return Gtk3::EVENT_PROPAGATE;
}
}
sub on_Window_destroy {
Gtk3->main_quit;
}
Aber wie löse ich diese Events von oben aus, wenn das Gtk3::MenuItem mit der Id Quit geklickt wird?
Glib::Object::signal_emit($Window, "event", Gtk3::Gdk::Event->new (""));
$Window->signal_emit("event", Gtk3::Gdk::Event->new (""));
?
Last edited: 2018-10-15 15:51:15 +0200 (CEST)