#include #define NUM_COL 5 class SprdTableModel : public QStandardItemModel { public: SprdTableModel() : QStandardItemModel() { setColumnCount(NUM_COL); setRowCount(0); for (int i=0; i < NUM_COL; i++) setHeaderData(i, Qt::Horizontal, QString("col%1").arg(i)); addRow(); addRow(); addRow(); addRow(); }; void addRow(){ int row=m_data.count(); insertRow(row); for (int i=0; i m_data; }; class SprdDialog : public QDialog { Q_OBJECT public: SprdDialog() : QDialog() { QLineEdit *lineEdit = new QLineEdit; QVBoxLayout *mainLayout = new QVBoxLayout; SprdTableModel *m_model = new SprdTableModel; m_view = new QTableView; m_view->setSelectionMode(QAbstractItemView::SingleSelection); m_view->setSelectionBehavior(QAbstractItemView::SelectRows); m_view->setModel(m_model); int rows = m_model->rowCount(); int cols = m_model->columnCount(); for (int i=0; i < rows ; i++) { for (int j=0; jindex(i, j); m_view->openPersistentEditor(indx); } } mainLayout->addWidget(lineEdit); mainLayout->addWidget(m_view); setLayout(mainLayout); }; QTableView *m_view; }; #include "main.moc" int main(int argc, char **argv) { QApplication app(argc, argv); SprdDialog dlg; dlg.resize(700, 300); dlg.show(); return app.exec(); }