GTK on_hide()



  • Ich wollte eigentlich, dass beim schliessen eines Fensters (mit dem kleinen X oben im Fensterrahmen) vorher noch was kleines ausgeführt werden soll.

    wenn ich das nun dort in die Funktion einfüge, schliesst das Fenster gar nicht mehr. es scheint mir es handelt sich eher um eine on_hide_do_somethinelse() 😉

    Allerdings währe es gut wenn in einem ganz bestimmten fall das Fenster nicht geschlossen wird.. Eben so, wie beim Schliessen von office wollen sie wirklich schliessen ohne zu speichern.

    Könnt ihr mir sagen was ich falsch mache?

    PS: ich arbeite mit C++ und GTKmm



  • Ich nenn die Beispielklasse mal Mainframe....

    int Mainframe::yes_no_dialog(const Glib::ustring &msg) {
      Gtk::MessageDialog dialog(*this, msg, false, Gtk::MESSAGE_QUESTION, 
    			    Gtk::BUTTONS_OK_CANCEL, true);
      int answer = dialog.run();
      return answer;
    };
    
    //Wenn true zurückkommt, macht dein Programm zu, sonst nicht.
    bool Mainframe::on_delete_event(GdkEventAny *event) {
      if (yes_no_dialog("Do you really want to exit?")==RESPONSE_OK) {
        return true;
      }
      return false;
    };
    

    MfG

    GPC



  • Super danke das war die lösung 👍


Log in to reply