(C++) QTableViewExample2
February 24, 2017 · View on GitHub
(C++) QTableViewExample2



QTableView example 2: table with ten columns of checkboxes is a QTableView example.
- View a screenshot of 'QTableViewExample2' (png)
- Download the Qt Creator project 'QTableViewExample2' (zip)
Technical facts
Operating system(s) or programming environment(s)
Lubuntu 15.04 (vivid)
Qt Creator 3.1.1
- G++ 4.9.2
Libraries used:
Qt project file: ./CppQTableViewExample2/CppQTableViewExample2.pro
QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TEMPLATE = app QMAKE_CXXFLAGS += -std=c++11 SOURCES += \ qtdialog.cpp \ qtmain.cpp HEADERS += qtdialog.h FORMS += qtdialog.ui
./CppQTableViewExample2/qtdialog.h
#ifndef QTDIALOG_H #define QTDIALOG_H #include <QDialog> namespace Ui { class QtDialog; } struct QStandardItemModel; class QtDialog : public QDialog { Q_OBJECT public: explicit QtDialog(QWidget *parent = 0); ~QtDialog(); private slots: void on_button_clicked(); private: Ui::QtDialog *ui; }; #endif // QTDIALOG_H
./CppQTableViewExample2/qtdialog.cpp
#include "qtdialog.h" #include <cassert> #include <QStandardItemModel> #include "ui_qtdialog.h" QtDialog::QtDialog(QWidget *parent) : QDialog(parent), ui(new Ui::QtDialog) { ui->setupUi(this); assert(!ui->table->model()); ui->table->setModel(new QStandardItemModel(this)); assert( ui->table->model()); assert(dynamic_cast<QStandardItemModel*>(ui->table->model())); dynamic_cast<QStandardItemModel*>(ui->table->model())->setColumnCount(8); for (int i=0; i!=10; ++i) on_button_clicked(); } QtDialog::~QtDialog() { delete ui; } void QtDialog::on_button_clicked() { const int n_cols = ui->table->model()->columnCount(); QList<QStandardItem*> items; for (int i=0; i!=n_cols; ++i) { QStandardItem * const item = new QStandardItem; item->setCheckable(true); item->setEditable(false); item->setCheckState(Qt::Checked); items.push_back(item); ui->table->setColumnWidth(i,24); } assert(dynamic_cast<QStandardItemModel*>(ui->table->model())); dynamic_cast<QStandardItemModel*>(ui->table->model())->appendRow(items); ui->table->scrollToBottom(); ui->table->setCurrentIndex(items[0]->index()); ui->table->setRowHeight(items[0]->index().row(),24); }
./CppQTableViewExample2/qtmain.cpp
#include <QApplication> #include "qtdialog.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); QtDialog w; w.show(); return a.exec(); }