Код:
#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()); // удаление текущей строки из базы данных
}