#include #include #include #include #include #include #include #include using namespace Wt; class TestApplication : public Wt::WApplication { private: WContainerWidget *rootContainer_; public: TestApplication(const WEnvironment& env); void showTableView(); }; TestApplication::TestApplication(const WEnvironment& env): WApplication(env), rootContainer_(NULL) { rootContainer_ = new WContainerWidget(root()); showTableView(); } void TestApplication::showTableView() { rootContainer_->clear(); //table view WStandardItemModel* model = new WStandardItemModel(); model->insertColumns(0, 5); model->setHeaderData(0, boost::any(std::string("column 0"))); model->setHeaderData(1, boost::any(std::string("column 1"))); model->setHeaderData(2, boost::any(std::string("column hidden"))); model->setHeaderData(3, boost::any(std::string("column 3"))); model->setHeaderData(4, boost::any(std::string("column 4"))); model->insertRows(0, 4); for (int i=0; i<4; i++) for (int j=0; j<5; j++) { WString cellData("({1}, {2})"); model->setData(model->index(i, j), boost::any(cellData.arg(i).arg(j))); } WTableView* tableView = new WTableView(); tableView->setSelectable(true); tableView->setSelectionMode(Wt::SingleSelection); tableView->setColumnHidden(2, true); //!! tableView->setRowHeaderCount(1); //!! tableView->setModel(model); tableView->setColumnWidth(0, 100); tableView->setColumnWidth(1, 100); //tableView->setColumnWidth(2, 110); --hidden tableView->setColumnWidth(3, 120); tableView->setColumnWidth(4, 130); tableView->resize(WLength(500, WLength::Pixel), WLength(160, WLength::Pixel)); //breaks WBreak* br1 = new WBreak(); WBreak* br2 = new WBreak(); //collect widgets rootContainer_->addWidget(tableView); } WApplication *createApplication(const WEnvironment& env) { return new TestApplication(env); } int main(int argc, char **argv) { return WRun(argc, argv, &createApplication); }