[C++/GTKmm] Wypełnianie kolumn w TreeView z użyciem Glade


(Marcin86s) #1

O ile rozumiem jak to działa bez użycia Glade, to tworząc w Glade prosty TreeView z dwiema kolumnami id i name, nie mam pojęcia co dalej zrobić? Zależy mi żeby to opanować bo znacznie przyspieszy to pracę. [-o<

Gtk::TreeStore* tree_store;

	builder-get_object("treestore1", tree_store);

	if (tree_store){ 

		Gtk::TreeStore::Row row = *(tree_store-append()); 

		gtk_tree_store_set (tree_store-gobj(), row.gobj(), 0, "test", -1); 

	}

?xml version="1.0" encoding="UTF-8"? 



 
 
 [/code]


Błąd:

[code]/main.cc:59:46: error: no matching function for call to 'Gtk::Builder::get_object(const char [11], Gtk::TreeStore*)'


(etam) #2

Spróbuj get_widget zamiast get_object


(Marcin86s) #3
gtkmm: object `treestore1' (type=`gtkmm__GtkTreeStore') (in GtkBuilder file) is not a widget type.

gtkmm: Gtk::Buidler: widget `treestore1' was not found in the GtkBuilder file, or the specified part of it.

Gtk::Builder::get_widget(): dynamic_cast<> failed.

(etam) #4

Racja TreeStore to nie widget. W takiej sytuacji trzeba użyć get_object, ale w sposób zgodny z dokumentacją http://developer.gnome.org/gtkmm/stable/classGtk_1_1Builder.html#a2e2dfd63721cf7dd648e262ed6630f0c i wynik zrzutować na odpowiedni typ http://developer.gnome.org/glibmm/stable/classGlib_1_1RefPtr.html#a07c06c5c305e65d6149a139c462a78d1