qt 汽车管理系统
界面设计
运行后界面
数据库表:
connection.h文件
#ifndef CONNECTION_H
#define CONNECTION_H
#include<Qtsql>
#include<QDebug>
#include<qdom.h>
#include<QDebug>
#include <QSqlQuery>
static bool createConnection()
{
// "Old_DB");
QSqlDatabase d=QSqlDatabase::addDatabase("QMYSQL");
d.setHostName("localhost");
d.setUserName("root");
d.setPassword("123456");
d.setDatabaseName("vehicle_management_system");
/*if(!db.open())
{
return false;
}
*/
if(d.open())
qDebug()<<"Hi mysql!连接"<<endl;
else
qDebug()<<"失败"<<d.lastError()<<endl;
qDebug()<<QSqlDatabase::drivers()<<endl;
// QSqlQuery query;
QSqlQuery *query = new QSqlQuery(d);
//添加完数据之后需要编译一下
query->exec(QString("insert into factory values('0','请选择厂家')"));
query->exec(QString("insert into factory values('01','一汽大众')"));
query->exec(QString("insert into factory values('02','上海神龙')"));
query->exec(QString("insert into factory values('03','上海大众')"));
query->exec(QString("INSERT INTO factory VALUES('05','奔驰');"));
query->exec(QString("insert into cbrand values('01','奥迪A6','一汽大众',36,50,10,40)"));
query->exec(QString("insert into cbrand values('02','捷达','一汽大众',34,20,5,15)"));
query->exec(QString("insert into cbrand values('03','宝来','一汽大众',41,80,20,60)"));
query->exec(QString("insert into cbrand values('04','奔驰','一汽大众',83,40,15,25)"));
query->exec(QString("insert into cbrand values('05','毕加索','二汽神龙',39,50,15,35)"));
query->exec(QString("insert into cbrand values('06','富康','二汽神龙',28,60,10,50)"));
query->exec(QString("insert into cbrand values('07','标志307','二汽神龙',27,70,20,50)"));
query->exec(QString("insert into cbrand values('08','桑塔纳','上海大众',25,75,25,50)"));
query->exec(QString("insert into cbrand values('09','帕萨特','上海大众',27,65,20,45)"));
//query->exec(QString("insert into cbrand values('01','奥迪A6','一汽大众',36,50,10,40)"));
//query.exec(QString("insert into cbrand"));
return true;
}
#endif // CONNECTION_H
widget.h文件
#ifndef WIDGET_H
#define WIDGET_H
//添加头文件
#include <QWidget>
#include<QMainWindow>
#include<QMenu>
namespace Ui {
class Widget;
}
class Widget : public QMainWindow
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
//销售管理主菜单
QMenu *manageMenu;
//修改密码的主菜单
QMenu *passwordMenu;
//动作 QAction类中保存了文本名称、快捷方式、图标、显示状态等
QAction *manageAction;
QAction *chartAction;
QAction *quitAction;
private slots:
void on_manageMenu_clicked();
void on_chartMenu_clicked();
void on_quitMenu_clicked();
void on_sellFactoryComBox_currentIndexChanged(const QString &arg1);
void on_sellCancelBtn_clicked();
void on_sellBrandComBox_currentIndexChanged(const QString &arg1);
void on_sellNumSpinBox_valueChanged(int arg1);
private:
Ui::Widget *ui;
void CreateMenuBar();
};
#endif // WIDGET_H
main.cpp文件
#include "widget.h"
#include <QApplication>
#include<connection.h>
#include<QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
createConnection();
qDebug()<<"22222222222";
Widget w;
w.show();
return a.exec();
}
widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include<QMenuBar>
#include<connection.h>
#include<QSqlQueryModel>
#include<QSplitter>
#include<QSqlQuery>
#include<QMessageBox>
Widget::Widget(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setFixedSize(600,450);
CreateMenuBar();
ui->stackedWidget->setCurrentIndex(0);
QSqlQueryModel *factoryModel=new QSqlQueryModel(this);
factoryModel->setQuery("select cname from factory");
ui->sellFactoryComBox->setModel(factoryModel);
QSplitter *splitter=new QSplitter(ui->managePage);
splitter->resize(700,360);
splitter->move(0,50);
splitter->addWidget(ui->toolBox);
splitter->addWidget(ui->DailyList);
splitter->setStretchFactor(0,1);
splitter->setStretchFactor(1,1);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_manageMenu_clicked()
{
ui->stackedWidget->setCurrentIndex(0);
}
void Widget::on_chartMenu_clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}
void Widget::on_quitMenu_clicked()
{
this->close();
}
void Widget::CreateMenuBar()
{
manageAction=new QAction(tr("品牌车管理"),this);
chartAction =new QAction(tr("销售统计"),this);
quitAction =new QAction(tr("退出"),this);
manageAction->setShortcut(tr("Ctrl+M"));
chartAction->setShortcut(tr("Ctrl+C"));
quitAction->setShortcut(tr("Ctrl+Q"));
manageMenu=menuBar()->addMenu(tr("销售管理"));
manageMenu->addAction(manageAction);
manageMenu->addAction(chartAction);
manageMenu->addSeparator();
manageMenu->addAction(quitAction);
passwordMenu=menuBar()->addMenu(tr("修改密码"));
connect(manageAction,SIGNAL(triggered()),this,SLOT(on_manageMenu_clicked()));
connect(chartAction,SIGNAL(triggered()),this,SLOT(on_chartMenu_clicked()));
connect(quitAction,SIGNAL(triggered()),this,SLOT(on_quitMenu_clicked()));
}
void Widget::on_sellFactoryComBox_currentIndexChanged(const QString &arg1)
{
if(arg1=="请选择厂家")
{
on_sellCancelBtn_clicked();
}
else
{
ui->sellBrandComBox->setEnabled(true);
QSqlQueryModel *model=new QSqlQueryModel(this);
//sql语句错误导致无法查询
model->setQuery(QString("select cname from cbrand where dreeFactory='%1'").arg(arg1));
ui->sellBrandComBox->setModel(model);
ui->sellCancelBtn->setEnabled(true);
}
}
void Widget::on_sellCancelBtn_clicked()
{
}
void Widget::on_sellBrandComBox_currentIndexChanged(const QString &arg1)
{
ui->sellNumSpinBox->setValue(0);
ui->sellNumSpinBox->setEnabled(false);
ui->sellSumLastEdit->clear();
ui->sellSumLastEdit->setEnabled(false);
ui->sellOkBtn->setEnabled(false);
QSqlQuery *query = new QSqlQuery();
query->exec(QString("select Cprice from cbrand where cname='%1' and dreeFactory='%2'").arg(arg1).arg(ui->sellFactoryComBox->currentText()));
query->next();
ui->sellPriceLineEdit->setEnabled(true);
ui->sellPriceLineEdit->setReadOnly(true);
ui->sellPriceLineEdit->setText(query->value(0).toString());
query->exec(QString("select sumLast from cbrand where cname='%1' and dreeFactory='%2'").arg(arg1).arg(ui->sellFactoryComBox->currentText()));
query->next();
int num=query->value(0).toInt();
if(num==0)
{
QMessageBox::information(this,tr("提示"),tr("该品牌汽车已经售完!"),QMessageBox::Ok);
}else
{
ui->sellNumSpinBox->setEnabled(true);
ui->sellNumSpinBox->setMaximum(num);
ui->sellLastNumLabel->setText(tr("剩余数量:%1").arg(num));
ui->sellLastNumLabel->setVisible(true);
}
}
void Widget::on_sellNumSpinBox_valueChanged(int arg1)
{
if(arg1==0)
{
ui->sellSumLastEdit->clear();
ui->sellSumLastEdit->setEnabled(false);
ui->sellOkBtn->setEnabled(false);
}else
{
ui->sellSumLastEdit->setEnabled(true);
ui->sellSumLastEdit->setReadOnly(true);
qreal sum=arg1*(ui->sellPriceLineEdit->text().toInt());
ui->sellSumLastEdit->setText(QString::number(sum));
ui->sellOkBtn->setEnabled(true);
}
}