class TemplateModel : public QSqlTableModel{Q_OBJECTpublic: explicit TemplateModel(QObject *parent = 0); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;};TemplateModel::TemplateModel(QObject *parent) : QSqlTableModel(parent){
QSqlQuery query; query.exec("select _rows, _columns from templates;");}QVariant TemplateModel::data(const QModelIndex &index, int role) const{ QVariant value = QSqlQueryModel::data(index, role); QFont font; switch (role) { case Qt::DisplayRole: // Данные для отображения case Qt::TextAlignmentRole: // Выравнивание return Qt::AlignCenter; break; case Qt::FontRole: // Шрифт font = QFont("Helvetica", 10, QFont::Bold); return qVariantFromValue(font); break; case Qt::BackgroundColorRole: // Цвет фона return qVariantFromValue(QColor(220,240,230)); break; } return value;}
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("test"); db.setUserName("root"); db.setPassword("test"); bool connected = db.open(); if (!connected) { QMessageBox::critical(parent, QObject::tr("Database Error"), db.lastError().text()); } model = new TemplateModel(this); if (model) ui->tableView->setModel(model);}