#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtSql/QSqlDatabase>#include <QtSql/QSqlError>#include <QtSql/QSqlQuery>#include <QMessageBox>#include <QtSql/QSqlTableModel>#include <QDataWidgetMapper>#include <QMessageBox>#include <QSqlQuery>#include <QFile>#include <QSqlRelationalDelegate>#include <QSqlError>#include <QApplication>#include <QPushButton>#include <QPrinter>#include <QTextDocument>#include <QPrintDialog>#include <QTextCodec>#include <QSqlQueryModel>#include "dialog.h"#include "dialog2.h"MainWindow::MainWindow(QApplication *a, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); QTextCodec *codec = QTextCodec::codecForName("CP1251"); codec = QTextCodec::codecForName("CP1251"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForLocale(codec); ui->tw->horizontalHeader()->setResizeMode(QHeaderView::Stretch); ui->tw->setItemDelegate(new QSqlRelationalDelegate(ui->tw)); ui->tw->setWindowTitle("Информационная система торговой организации"); QSqlDatabase db=QSqlDatabase::addDatabase("QPSQL"); db.setHostName("localhost"); db.setPort(5432); db.setDatabaseName("postgres"); db.setUserName("postgres"); db.setPassword("123123"); if (!db.open()) { QMessageBox::critical(parent,QObject::tr("Database Error"),db.lastError().text()); } QSqlTableModel *model=new QSqlTableModel; model->setTable("trade"); if (model->lastError().isValid() ) { QMessageBox::critical(parent,QObject::tr("Query Error"),model->lastError().text()); } model->setHeaderData(0, Qt::Horizontal, QObject::tr("Номер точки")); model->setHeaderData(1, Qt::Horizontal, QObject::tr("Тип торговой точки")); model->setHeaderData(2, Qt::Horizontal, QObject::tr("Число торговых залов")); model->setHeaderData(3, Qt::Horizontal, QObject::tr("Платежи за аренду, руб.")); model->setHeaderData(4, Qt::Horizontal, QObject::tr("Коммунальные услуги, руб.")); model->select(); ui->tw->setModel(model); this->model = model; ui->tw->show(); model->submitAll();}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_actionExit_triggered(){ QMessageBox::information(0,"Info","exit pressed.");}void MainWindow::on_action_triggered(){ QSqlTableModel *model=new QSqlTableModel; model->setTable("trade"); model->setHeaderData(0, Qt::Horizontal, QObject::tr("Номер точки")); model->setHeaderData(1, Qt::Horizontal, QObject::tr("Тип торговой точки")); model->setHeaderData(2, Qt::Horizontal, QObject::tr("Число торговых залов")); model->setHeaderData(3, Qt::Horizontal, QObject::tr("Платежи за аренду, руб.")); model->setHeaderData(4, Qt::Horizontal, QObject::tr("Коммунальные услуги, руб.")); model->select(); ui->tw->setModel(model); delete this->model; this->model = model;ui->tw->show();}void MainWindow::on_action_8_triggered() { model->insertRow(model->rowCount()); // добавление информации в базу данных }void MainWindow::on_action_9_triggered() { model->removeRow(ui->tw->currentIndex().row()); // удаление текущей строки из базы данных }
model->insertRow(model->rowCount()); // добавление информации в базу данных