Obtenga datos de la fila seleccionada de gtk treeview - gtkmm, c ++

Tengo una aplicación GTK que tiene una ventana con untreeview y un botón. Cuando se hace clic en el botón, necesito obtener los datos de la primera (y única) columna de la fila seleccionada en latreeview.

Esta es la clase para las columnas:

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

    ModelColumns(){ add(m_port_name); }

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

Esto es como en el ejemplo aquí pero con una sola columna:http://www.lugod.org/presentations/gtkmm/treeview.html

Este es el controlador de señal de clic de botón en este momento:

tvPorts es eltreeview widget

tvPortsList es ellistStore Para eltreeview

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.
}

He buscado en la documentación y en muchos ejemplos para intentar averiguar qué hacer a continuación, pero no puedo encontrar ningún ejemplo para gtkmm, solo puedo encontrar ejemplos para implementaciones en python.

Por lo que puedo decir, necesito conseguir unTreeRow objeto de miiterator (selectedRow) ¿Cómo hago esto?

Gracias.

Actualizar:

Ahora estoy usando este código y casi funciona. El único problema es que imprime la selección anterior. La primera vez que selecciono algo y luego presiono el botón, se imprime solo una nueva línea. La segunda vez que imprime lo que se seleccionó la primera vez, la tercera imprime la segunda, etc.

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());

Esto parece extraño. (m_Columns es una instancia de laModelColumns clase)

Actualización 2:

Arreglado el problema agregandofflush(stdout); Todo funciona ahora, gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta