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);
   }
}
 

猜你喜欢

转载自blog.csdn.net/d123454545/article/details/81742892