I think I've found an answer to my own problem.
If I declare pointers to the ModelColumns objects in the header file
and then instatiate the objects with new in the window constructor, all
is well.
The tutorial contains an admonition about the TreeModelColumnRecord
object not being static but, at first reading, I had taken this to mean
literally static.
If I am right and it is indeed best to use a pointer and only
intstantiate the object in the window constructor, perhaps this should
be done in the example code.
David
David Davies wrote:
I
need help please with treeview problems.
I need to show two TreeViews with different TreeModels in one window.
My starting point is the example at
http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/sec-treeview-examples.html
If I add a second treeview with its own ModelColumns to the .h file
then, even without making the corresponding additions to the .cc file,
the window fails to display. There are no compilation errors.
The problem lines seem to be those I have marked //1 through //4 in the
following header file listing.
Many thanks for any advice.
David
#ifndef EXAMPLEWINDOW_H_
#define EXAMPLEWINDOW_H_
#include <gtkmm.h>
class ExampleWindow : public Gtk::Window
{
public:
ExampleWindow();
virtual ~ExampleWindow();
void Show();
protected:
//Signal handlers:
virtual void on_button_quit();
virtual void on_treeview_row_activated(
const Gtk::TreeModel::Path& path,
Gtk::TreeViewColumn* column);
//Tree model columns:
class ModelColumns : public Gtk::TreeModel::ColumnRecord
{
public:
ModelColumns()
{
add(m_col_id);
add(m_col_name);
}
Gtk::TreeModelColumn<int> m_col_id;
Gtk::TreeModelColumn<Glib::ustring> m_col_name;
};
ModelColumns m_Columns;
class ModelColumnsB : public Gtk::TreeModel::ColumnRecord
{
public:
ModelColumnsB()
{
add(m_colB_id);
add(m_colB_name);
}
Gtk::TreeModelColumn<int> m_colB_id;
Gtk::TreeModelColumn<Glib::ustring> m_colB_name;
};
ModelColumnsB m_ColumnsB;//1
//Child widgets:
Gtk::VBox m_VBox;
Gtk::ScrolledWindow m_ScrolledWindow;
Gtk::TreeView m_TreeView;
Glib::RefPtr<Gtk::TreeStore> m_refTreeModel;
Gtk::ScrolledWindow m_ScrolledWindowB; //2
Gtk::TreeView m_TreeViewB; //3
Glib::RefPtr<Gtk::TreeStore> m_refTreeModelB;//4
Gtk::HButtonBox m_ButtonBox;
Gtk::Button m_Button_Quit;
};
#endif /*EXAMPLEWINDOW_H_*/
_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
http://mail.gnome.org/mailman/listinfo/gtkmm-list
|