[gtkmm] Auf Tastendruck reagieren



  • Wie reagiere ich auf Tastendruck?

    Zum Beispiel beim Drücken einer bestimmten Pfeiltaste soll eine Funktion aufgerufen werden.

    mfg.



  • Überschreib in deinem Gtk::Window die bool Gtk::Widget::on_button_press_event(GdkEventButton 😉 Methode.
    Den Keycode kannst du abfragen (schau in der Gdk Doku, wie's geht) und wenn's passt, die Funktion aufrufen. Beachte auch bool als Rückgabewert. Der sagt aus, ob der Event hier abgearbeitet werden konnte.

    Ich schau sonst mal in 'nem älteren Programm, wie ich's da gemacht habe, dauert aber bis heute Abend.



  • Vielen Dank für den Tipp, hab ein bisschen in der Doku gesucht und dann die Funktion on_key_press_event gefunden, on_button_press_event scheint für mausklicks zu sein.
    Danach musst ich noch in der Gdk-Doku suchen und hab dann folgenden Code meine Gtk::Window hinzugefügt:

    virtual bool on_key_press_event(GdkEventKey* event)
        {
        	std::cout << "Taste gedrückt!" << std::endl;
        	if(event->keyval == GDK_Up)
        	{
        		std::cout << "Nach oben!" << std::endl;
        	}
        	return true;
        }
    

    mfg.


Anmelden zum Antworten