Описание класса:
#ifndef SQLRELATIONALTABLEMODEL_H
#define SQLRELATIONALTABLEMODEL_H
#include <QSqlRelationalTableModel>
#include <QSqlQuery>
class SqlRelationalTableModel : public QSqlRelationalTableModel
{
public:
SqlRelationalTableModel();
void setSqlQuery (const QString &query);
};
#endif // SQLRELATIONALTABLEMODEL_H
и его реализация:
#include "sqlrelationaltablemodel.h"
SqlRelationalTableModel::SqlRelationalTableModel()
{}
void SqlRelationalTableModel::setSqlQuery(const QString &query)
{
this->setQuery(QSqlQuery(query));
}
создание модели и представления:
void MWindow::createWorkersTab()
{
workersModel = new SqlRelationalTableModel;
workersModel->setTable("workers");
workersModel->setHeaderData(0, Qt::Horizontal, tr("Number in database"));
workersModel->setHeaderData(1, Qt::Horizontal, tr("Surname"));
//workersModel->setSqlQuery("SELECT id, incode, surname + \" \" + name + \" \" + lastname, birthdate, pseries, pnumber FROM workers");
workersModel->select();
workersView = new QTableView;
workersView->setModel(workersModel);
workersView->setSortingEnabled(true);
workersView->setAlternatingRowColors(true);
workersView->setShowGrid(false);
workersView->setSelectionBehavior(QAbstractItemView::SelectRows);
workersView->setSelectionMode(QAbstractItemView::SingleSelection);
//workersView->verticalHeader()->hide();
workersView->resizeColumnsToContents();
workersView->setEditTriggers(QAbstractItemView::NoEditTriggers);
main->addTab(workersView, QIcon (":/images/qt.png"), tr("Workers"));
}
Строка запроса закомментирована, ибо не правильно работает:(