Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QPushButton>
- #include <QHBoxLayout>
- #include <QFile>
- #include <QTextStream>
- #include <QtSql/QSqlDatabase>
- #include <QtSql/QSqlQuery>
- #include <train_handler.h>
- #include <QSqlError>
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- ui->tableWidget->setColumnWidth(0, 120);
- ui->tableWidget->setColumnWidth(1, 120);
- ui->tableWidget->setColumnWidth(2, 160);
- ui->tableWidget->setColumnWidth(3, 160);
- ui->tableWidget->setColumnWidth(4, 170);
- ui->tableWidget->setColumnWidth(5, 200);
- }
- void MainWindow::RemoveTrain()
- {
- }
- void MainWindow::Edit()
- {
- }
- void MainWindow::details()
- {
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::Add(vector<cities> &s)
- {
- ui->tableWidget->insertRow(ui->tableWidget->rowCount());//вставка нового маршруту
- for(int i = 0; i<ui->tableWidget->columnCount(); i++)
- {
- if(i==0)//опція видалення маршруту
- {
- QWidget* pWidget = new QWidget(this);
- QPushButton* btn_edit = new QPushButton();
- btn_edit->setText("Remove");
- connect(btn_edit, &QPushButton::clicked, this, &MainWindow::RemoveTrain);
- QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
- pLayout->addWidget(btn_edit);
- pLayout->setAlignment(Qt::AlignCenter);
- pLayout->setContentsMargins(0, 0, 0, 0);
- pWidget->setLayout(pLayout);
- ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1, i, pWidget);
- continue;
- }
- if(i == 1)//опція редагування маршруту
- {
- QWidget* pWidget = new QWidget(this);
- QPushButton* btn_edit = new QPushButton();
- btn_edit->setText("Edit");
- connect(btn_edit, &QPushButton::clicked, this, &MainWindow::Edit);
- QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
- pLayout->addWidget(btn_edit);
- pLayout->setAlignment(Qt::AlignCenter);
- pLayout->setContentsMargins(0, 0, 0, 0);
- pWidget->setLayout(pLayout);
- ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1, i, pWidget);
- continue;
- }
- if(i==2)// показати деталі
- {
- QWidget* pWidget = new QWidget(this);
- QPushButton* btn_edit = new QPushButton();
- btn_edit->setText("Show details");
- connect(btn_edit, &QPushButton::clicked, this, &MainWindow::details);
- QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
- pLayout->addWidget(btn_edit);
- pLayout->setAlignment(Qt::AlignCenter);
- pLayout->setContentsMargins(0, 0, 0, 0);
- pWidget->setLayout(pLayout);
- ui->tableWidget->setCellWidget(ui->tableWidget->rowCount()-1, i, pWidget);
- continue;
- }
- if(i == 3)//імя стартового міста
- {
- QTableWidgetItem*item = new QTableWidgetItem(s[0].city_);
- item->setFlags(item->flags() ^ Qt::ItemIsEditable);
- item->setTextAlignment(Qt::AlignCenter);
- ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, i, item);
- ui->tableWidget->item(ui->tableWidget->rowCount()-1,3)->setToolTip(ui->tableWidget->item(ui->tableWidget->rowCount()-1,3)->text());
- }
- if(i==4)//імя кінцевого міста
- {
- QTableWidgetItem*item = new QTableWidgetItem(s[s.size()-1].city_);
- item->setFlags(item->flags() ^ Qt::ItemIsEditable);
- item->setTextAlignment(Qt::AlignCenter);
- ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, i, item);
- ui->tableWidget->item(ui->tableWidget->rowCount()-1,4)->setToolTip(ui->tableWidget->item(ui->tableWidget->rowCount()-1,4)->text());
- }
- if(i==5)//імена проміжних міст
- {
- QString between = "";
- for(int i = 1; i< s.size()-1;i++)
- {
- if(i != s.size()-2)
- between += s[i].city_ + " - ";
- else
- between += s[i].city_ ;
- }
- QTableWidgetItem*item = new QTableWidgetItem(between);
- item->setFlags(item->flags() ^ Qt::ItemIsEditable);
- ui->tableWidget->setItem(ui->tableWidget->rowCount()-1, i, item);
- ui->tableWidget->item(ui->tableWidget->rowCount()-1,5)->setToolTip(ui->tableWidget->item(ui->tableWidget->rowCount()-1,5)->text());
- }
- }
- }
- void MainWindow::on_actionAdd_train_triggered()
- {
- Dialog e;
- if(e.exec())
- {
- if(e.duplicate == "")
- {
- Add(e.Cities);
- QFile inputFile("Data.txt");
- if (inputFile.open(QIODevice::ReadOnly))
- {
- QTextStream in(&inputFile);
- while (!in.atEnd())
- {
- QString line = in.readLine();
- //ui->textBrowser->append(line);
- }
- inputFile.close();
- }
- // ui->textBrowser->append(e.POPULATION);
- /* for(auto City: e.Cities)
- {
- ui->textBrowser->append(City.city_+ " " + City.depart_+ " " +City.leave_);
- }*/
- // Add(e.Cities);
- static int i = 0;
- static vector<train>T__;
- vector<city>Cities_;
- db = QSqlDatabase::addDatabase("QSQLITE");
- db.setDatabaseName("C:\\SQLiteDatabaseBrowserPortable\\Data\\cities.db");
- db.open();
- QSqlQuery query;
- for(int i = 0;i<e.Cities.size();i++)
- {
- query.exec("SELECT * FROM "+e.train_name+" WHERE city = '" +e.Cities[i].city_+ "'");
- while(query.next())
- {
- QString city__ = query.value(1).toString();
- QString arrival_time__ = query.value(2).toString();
- QString depart_time__ = query.value(3).toString();
- QString distance_to_previous__ = query.value(4).toString();
- QString population__ = query.value(5).toString();
- city C(city__,arrival_time__,depart_time__,distance_to_previous__.toFloat(),population__.toInt(),i);
- Cities_.push_back(C);
- }
- }
- // db.close();
- // train::train(int number, int people,QString name_, vector<city>&cities)
- train T(i,1000,e.train_name,Cities_);
- /*T__.push_back(T);
- T__[T__.size()-1].*/
- T.set_appropriate_placess_values();
- for(auto item: T.placess)
- {
- QString s = "";
- for(auto i:item)
- {
- s += QString::number(i)+" ";
- }
- ui->textBrowser->append(s);
- }
- T.random_passanger();
- T.set_cost();
- QSqlDatabase db_ = QSqlDatabase::addDatabase("QSQLITE");
- db_.setDatabaseName("C:\\SQLiteDatabaseBrowserPortable\\Data\\cities.db");
- db_.open();
- if(db_.isOpen())
- ui->textBrowser_2->append("Opened");
- QSqlQuery q;
- ui->textBrowser_2->append(e.train_name+"_people " + QString::number(T.passangers.size()));
- /* if(query.exec("create table "+s+" "
- "(id integer primary key, "
- "depart_city varchar(30), "
- "arrival_city varchar(30), "
- "firstname varchar(30), "
- "lastname varchar(30), "
- "bot varchar(10),"
- "vagon integer,"
- "place integer,"
- "privileges varchar(5), "
- "distance integer, "
- "ticket_price integer)"))*/
- // {
- for(int i = 0; i< T.passangers.size();i++)//Add passengers
- {
- QString bot = "bot";
- QString privilages = "No";
- QString dataB = e.train_name+"_people";
- if(i % 10 == 0 )
- ui->textBrowser_2->append(QString::number(i+1)+" "+T.passangers[i].left_city+" "+T.passangers[i].arrival_city+" "+T.passangers[i].name+" "
- +T.passangers[i].surname+" "+QString::number(T.passangers[i].wagon)+" "+QString::number(T.passangers[i].place)+" "+QString::number(T.passangers[i].way_distance));
- if(!q.exec("INSERT INTO " +dataB +" (depart_city,arrival_city,firstname,lastname,bot,vagon,place,privileges,distance,ticket_price)"
- +"values('"+T.passangers[i].left_city+"','"+T.passangers[i].arrival_city+"','"+T.passangers[i].name+"','"
- +T.passangers[i].surname+"','"+bot+"','"+T.passangers[i].wagon+"','"+T.passangers[i].place+"','"+privilages+"','"+T.passangers[i].way_distance+"','"+T.passangers[i].ticket_cost+"')"))
- {
- ui->textBrowser_2->append(q.lastError().text()+" "+QString::number(q.lastError().number()));
- }
- }
- i++;
- db_.close();
- ui->textBrowser_2->append(T.res);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement