I'm want to use a QTableView with a QSqlTabkeModel. The table's content is invisible after seting up the model.
The QTableView widget is created in designer.

initalizeModel test method is from http://doc.qt.nokia.com/stable/sql-tablemodel.html
Qt Code:
  1. void DatabaseWindow::initializeModel()
  2. {
  3. mDataTableModel->setTable("person");
  4. mDataTableModel->setEditStrategy(QSqlTableModel::OnRowChange);
  5. mDataTableModel->select();
  6.  
  7. mDataTableModel->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
  8. mDataTableModel->setHeaderData(1, Qt::Horizontal, QObject::tr("First name"));
  9. mDataTableModel->setHeaderData(2, Qt::Horizontal, QObject::tr("Last name"));
  10.  
  11. //here i call ExtendedTableWidget's setUpView method
  12. mTableWidget->setUpView(mDataTableModel);
  13. }
To copy to clipboard, switch view to plain text mode 

header:
Qt Code:
  1. namespace Ui
  2. {
  3. class ExtendedTableWidget;
  4. }
  5.  
  6. class ExtendedTableWidget : public QWidget
  7. {
  8. Q_OBJECT
  9. public:
  10. explicit ExtendedTableWidget(QWidget *parent = 0);
  11.  
  12. void setUpView(QSqlTableModel *model);
  13.  
  14. private:
  15.  
  16. private:
  17. Ui::ExtendedTableWidget *mUi;
  18. };
To copy to clipboard, switch view to plain text mode 

cpp:
Qt Code:
  1. #include "extendedtablewidget.h"
  2. #include "ui_extendedtablewidget.h"
  3.  
  4. ExtendedTableWidget::ExtendedTableWidget(QWidget *parent) :
  5. QWidget(parent),
  6. mUi(new Ui::ExtendedTableWidget())
  7. {
  8. mUi->setupUi(this);
  9. }
  10.  
  11. void ExtendedTableWidget::setUpView(QSqlTableModel *model)
  12. {
  13. mUi->tableMainData->setModel(model);
  14. mUi->tableMainData->setSelectionModel(new QItemSelectionModel(model));
  15.  
  16. //the tpmTable is show the content, but tableMainData isn't
  17.  
  18. QTableView *tpmTable = new QTableView();
  19.  
  20. tpmTable.setModel(model);
  21. tpmTable.show();
  22. }
To copy to clipboard, switch view to plain text mode