I created a TreeView widget in my code and showed it, but it does not appear when I run the compiled program. I have no idea whether this is my fault or some fault of gtkmm so I'm posting this. Here is all the relevant code: in file mainWindow.h #include <gtkmm/button.h> #include <gtkmm/window.h> #include <gtkmm/box.h> #include <gtkmm/entry.h> #include <gtkmm/treeview.h> #include <gtkmm/treemodel.h> #include <gtkmm/liststore.h> class MainWindow : public Gtk::Window { public: MainWindow(); virtual ~MainWindow(); protected: //Signal handler for the newGateway button void newGatewayPressed(); void newBuddy(); //Woo. a column. class modelColumn : public Gtk::TreeModel::ColumnRecord { public: modelColumn() { add(m_col_name); } Gtk::TreeModelColumn<Glib::ustring> m_col_name; }; modelColumn column; //widgets in our window Gtk::TreeView treeView; Glib::RefPtr<Gtk::ListStore> treeModel; Gtk::VBox vBox; Gtk::Button newGatewayButton; Gtk::Entry newBuddyEntry; }; in file mainWindow.cc #include "mainWindow.h" // #include <jabber.h> void MainWindow::newGatewayPressed() { } void MainWindow::newBuddy() { } MainWindow::MainWindow() : newGatewayButton("Connect to Gateway") { set_title("GIC"); set_border_width(0); add(vBox); vBox.pack_start(newGatewayButton); newGatewayButton.signal_clicked().connect(SigC::slot(*this,&MainWindow::newGatewayPressed)); newBuddyEntry.signal_activate().connect(SigC::slot(*this,&MainWindow::newBuddy)); vBox.pack_start(newBuddyEntry); treeModel = Gtk::ListStore::create(column); treeView.set_model(treeModel); Gtk::TreeModel::Row row = *(treeModel->append()); row[column.m_col_name] = "Fakedata"; vBox.pack_start(treeView); show_all_children(); } MainWindow::~MainWindow() { } in file main.cc #include <gtkmm/main.h> #include "mainWindow.h" int main(int argc,char *argv[]) { Gtk::Main kit(argc,argv); MainWindow mainWin; Gtk::Main::run(mainWin); return 0; } all my code compiles fine with no warnings but my TreeView is mysteriously missing. Thanks in advance, Nick Nolan
Attachment:
pgpEDbXmSVINa.pgp
Description: PGP signature