muss zwei Mal auf das Schließen-Feld oben rechts klicken, damit der Dialog signal_hide bekommt und verschwindet
-
#include <gtkmm.h> class TestDialog : public Gtk::Dialog { }; class TestWindow : public Gtk::Window { public: TestWindow(): button_("Button") { dialog_.set_transient_for(*this); button_.signal_clicked().connect(sigc::mem_fun(*this, &TestWindow::show_dialog)); add(button_); button_.show(); } private: void show_dialog() { dialog_.run(); } Gtk::Button button_; TestDialog dialog_; }; int main (int argc, char *argv[]) { Gtk::Main kit(argc, argv); TestWindow win; win.show(); kit.run(win); }
ich muss zwei Mal auf das Schließen-Feld oben rechts klicken, damit der Dialog signal_hide bekommt und verschwindet. woran liegt das? einmal würde mir genügen.
-
Daran:
dvd schrieb:
win.show(); kit.run(win);
MfG
-
-
cd schrieb:
Du kannst dir win.show() hier sparen.
mfg
v R
-
Nett, meinen Test-Code von rafb.net hier wiederzufinden.
@dvd/cd: Falls du im Chat etwas weiter gelesen hättest, hättest du gesehen, dass ich die Lösung inzwischen gefunden habe:
void TestDialog::on_response(int id) { hide(); Gtk::Dialog::on_response(id); }
Dank dieser Funktion muss man nur noch einmal klicken.
Falls allerdings jemand eine Begründung für dieses Verhalten kennt, immer her damit.
-
hier wurde doch schon die richtige lösung genannt?
-
dvd schrieb:
hier wurde doch schon die richtige lösung genannt?
Nö. Es ging ja um den Dialog, nicht um das Fenster. Das Fenster wird so oder so beim ersten Klick geschlossen.