Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HPP FILE
- #ifndef DIALOG_HPP
- #define DIALOG_HPP
- #include "ui_dialog.h"
- #include <QApplication>
- #include <QDialog>
- #include <QSqlTableModel>
- #include <QTableView>
- #include <QSqlQuery>
- #include <QFileDialog>
- #include <QMessageBox>
- namespace Ui {
- class Dialog;
- }
- class Dialog : public QDialog, private Ui::Dialog
- {
- Q_OBJECT
- public:
- explicit Dialog(QWidget *parent = 0);
- ~Dialog();
- void add(const QString &item, int price, int quantity, int day, int month, int year);
- //void stat();
- protected:
- void changeEvent(QEvent *e);
- private slots:
- void on_addButton_clicked();
- private:
- Ui::Dialog *ui;
- QSqlTableModel *model;
- QSqlDatabase db;
- QSqlQuery query;
- QString file;
- };
- #endif // DIALOG_HPP
- CPP FILE
- #include "dialog.hpp"
- #include "QLatin1String"
- #include <QDebug>
- void Dialog::add(const QString &item, int price, int quantity, int day, int month, int year)
- {
- query.prepare(QLatin1String("insert into db (item, price, quantity, day, month, year) values (?, ?, ?, ?, ?, ?"));
- query.addBindValue(item);
- query.addBindValue(price);
- query.addBindValue(quantity);
- query.addBindValue(day);
- query.addBindValue(month);
- query.addBindValue(year);
- query.exec();
- query.clear();
- }
- Dialog::Dialog(QWidget *parent) :
- QDialog(parent),ui(new Ui::Dialog), db(QSqlDatabase::addDatabase("QSQLITE"))
- {
- //SQL FILE
- file = QFileDialog::getOpenFileName(this, tr("Open Database"), "/", tr("SQLite Database Files (*.sqlite)"));
- if (file.isNull())
- {
- qDebug() << " in";
- QMessageBox::critical(this, "Error", "You must choose some file!");
- parent->close();
- }
- qDebug() << "out";
- // БД
- db.setDatabaseName(file);
- db.open();
- if (db.tables().contains(QLatin1String("db")) == false)
- {
- // Создаем таблицу бд
- query.exec(QLatin1String("create table db (id integer primary key, item varchar, price integer, quantity integer, day integer, month integer, year integer)"));
- query.clear();
- qDebug() << "in2";
- // Добавим что-нибудь
- add("iPhone 5s 64GB", 399, 12, 22, 01, 1998);
- add("iPad 2 32GB", 499, 12, 22, 04 ,1991);
- }
- qDebug() << "out 2";
- //Интерфейс
- setupUi(this);
- // Создаем таблицу бд
- query.exec(QLatin1String("create table db (id integer primary key, item varchar, price integer, quantity integer, day integer, month integer, year integer)"));
- query.clear();
- qDebug() << "out 3";
- //Создадим модель
- model = new QSqlTableModel(this,db);
- qDebug() << "out 4";
- model->setTable("db");
- model->setEditStrategy(QSqlTableModel::OnFieldChange);
- model->setHeaderData(0, Qt::Horizontal, tr("ID"));
- model->setHeaderData(1, Qt::Horizontal, tr("Item"));
- model->setHeaderData(2, Qt::Horizontal, tr("Price"));
- model->setHeaderData(3, Qt::Horizontal, tr("Quantity"));
- model->setHeaderData(4, Qt::Horizontal, tr("Day"));
- model->setHeaderData(5, Qt::Horizontal, tr("Month"));
- model->setHeaderData(6, Qt::Horizontal, tr("Year"));
- model->select();
- qDebug() << "out 5";
- // Добавим модель
- ui->tableView->setModel(model);
- ui->tableView->show();
- qDebug() << "out 6";
- }
- void Dialog::changeEvent(QEvent *e)
- {
- QDialog::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- retranslateUi(this);
- break;
- default:
- break;
- }
- }
- Dialog::~Dialog()
- {
- delete ui;
- delete model;
- }
- void Dialog::on_addButton_clicked()
- {
- add(ui->nameEdit->text(),ui->priceBox->value(),ui->quantityBox->value(),ui->dayBox->value(),ui->monthBox->value(),ui->yearBox->value());
- ui->nameEdit->clear();
- ui->priceBox->clear();
- ui->quantityBox->clear();
- ui->dayBox->clear();
- ui->monthBox->clear();
- ui->yearBox->clear();
- model->select();
- }
- MAIN FILE
- #include "dialog.hpp"
- #include <QApplication>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- Dialog w;
- w.show();
- return a.exec();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement