How to get a method called when the Gtk::DropDown selected item has changed?

114 Views Asked by At

Using gtkmm-4.0, I defined a dropdown in my class SomeClass :

auto some_dropdown = Gtk::DropDown();
auto some_model = Gtk::StringList::create({"a", "b"});
some_dropdown.set_model(some_model);

I am able to set/get the selected item index using set_selected and get_selected

How can I get the following callback method of SomeClass to be fired when the selection changed ?

void SomeClass::some_dropdown_selected_changed(int selected){
   // do something
}

(I tried using some_dropdown.property_selected().signal_changed().connect to no avail.)

1

There are 1 best solutions below

0
On

I finally could find the correct signal to connect, which is :

some_dropdown.property_selected().signal_changed().connect(
        sigc::bind(sigc::mem_fun(*this, &SomeClass::some_dropdown_selected_changed)));

Handler does not take the selected item index as a parameter:

void SomeClass::some_dropdown_selected_changed(){
   // do something
}