Uzyskaj dane z wybranego wiersza widoku drzewa gtk - gtkmm, c ++

Mam aplikację GTK, która ma okno ztreeview i przycisk. Po kliknięciu przycisku muszę pobrać dane z pierwszej (i jedynej) kolumny wybranego wiersza wtreeview.

To jest klasa kolumn:

class ModelColumns: 
public Gtk::TreeModel::ColumnRecord{
    public:

    ModelColumns(){ add(m_port_name); }

    Gtk::TreeModelColumn<Glib::ustring> m_port_name;
};

To jest jak w przykładzie tutaj, ale tylko z jedną kolumną:http://www.lugod.org/presentations/gtkmm/treeview.html

W tej chwili jest to przycisk obsługi sygnału kliknięcia:

tvPorts jesttreeview widżet

tvPortsList jestlistStore dlatreeview

static
void on_btnPortSelectOK_clicked (){
    Glib::RefPtr<Gtk::TreeSelection> selection = tvPorts->get_selection();
    Gtk::TreeModel::iterator selectedRow = selection->get_selected();
    //Now what?
    //Need to get data from selected row to display it.
}

Przeszukałem dokumentację i wiele przykładów, aby spróbować dowiedzieć się, co robić dalej, ale nie mogę znaleźć żadnych przykładów dla gtkmm, mogę tylko znaleźć przykłady dla implementacji c lub python.

O ile wiem, muszę dostaćTreeRow obiekt z mojegoiterator (selectedRow) jak mam to zrobic?

Dzięki.

Aktualizacja:

Używam teraz tego kodu i prawie działa. Jedynym problemem jest to, że drukuje poprzedni wybór. Po pierwszym wybraniu czegoś, a następnie naciśnięciu przycisku, drukuje tylko nową linię. Za drugim razem, gdy drukuje to, co zostało wybrane za pierwszym razem, trzeci drukuje drugi itd.

Glib::RefPtr<Gtk::TreeSelection> selection = tvPorts->get_selection();
Gtk::TreeModel::iterator selectedRow = selection->get_selected();
Gtk::TreeModel::Row row = *selectedRow;
Glib::ustring port = row.get_value(m_Columns.m_port_name);
printf("\nselected port: %s", port.data());

To wydaje się dziwne. (m_Columns jest instancjąModelColumns klasa)

Aktualizacja 2:

Naprawiono problem przez dodaniefflush(stdout); Wszystko działa teraz, dzięki.

questionAnswers(1)

yourAnswerToTheQuestion