📄 mainwindow.cpp
字号:
#include "mainwindow.h"
#include <QtGui/QHeaderView>
#include <QtSql/QSqlRecord>
#include <QtSql/QSqlQuery>
#include <QtCore/Qt>
#include <QtGui/QMessageBox>
#include <QtGui/QSplitter>
#include "goodseditdialog.h"
#include "goodsinoutdialog.h"
#include "customereditdialog.h"
#include "goodsviewdialog.h"
#include "consumegoodsadddialog.h"
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent)
{
setupUi(this);
resize(800, 600);
connect(actionAboutQt, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
toolBar->addAction(actionGoods);
toolBar->addAction(actionCustomer);
toolBar->addAction(actionConsume);
toolBar->addAction(actionReport);
toolBar->addAction(actionAboutSoftware);
toolBar->addAction(actionExit);
db = QSqlDatabase::database();
//=========================================================================
queryModelGoods.setQuery();
tableViewGoods->setModel(&queryModelGoods);
tableViewGoods->verticalHeader()->setDefaultSectionSize(20);
tableViewGoods->verticalHeader()->hide();
tableViewGoods->setColumnWidth(0, 80);
tableViewGoods->setColumnWidth(1, 200);
tableViewGoods->setColumnWidth(2, 60);
tableViewGoods->setColumnWidth(3, 60);
tableViewGoods->setColumnWidth(4, 60);
tableViewGoods->setColumnWidth(5, 60);
tableViewGoods->setColumnWidth(6, 200);
tableViewGoods->hideColumn(7);
queryModelGoods.sort(0);
QHeaderView *headerGoods = tableViewGoods->horizontalHeader();
headerGoods->setSortIndicator(0, Qt::AscendingOrder);
headerGoods->setSortIndicatorShown(true);
headerGoods->setClickable(true);
connect(headerGoods, SIGNAL(sectionClicked(int)), tableViewGoods, SLOT(sortByColumn(int)));
///////////////////////////////////
// 这里创建商品表格的右键菜单
actGoodsAdd = new QAction(tr("添加商品"), this);
connect(actGoodsAdd, SIGNAL(triggered()), this, SLOT(on_actGoodsAdd_triggered()));
connect(pushButtonGoodsAdd, SIGNAL(clicked()), this, SLOT(on_actGoodsAdd_triggered()));
actGoodsInout= new QAction(tr("商品进退货"), this);
connect(actGoodsInout, SIGNAL(triggered()), this, SLOT(on_actGoodsInout_triggered()));
connect(pushButtonGoodsInout, SIGNAL(clicked()), this, SLOT(on_actGoodsInout_triggered()));
actGoodsEdit = new QAction(tr("修改商品"), this);
connect(actGoodsEdit, SIGNAL(triggered()), this, SLOT(on_actGoodsEdit_triggered()));
connect(pushButtonGoodsEdit, SIGNAL(clicked()), this, SLOT(on_actGoodsEdit_triggered()));
actGoodsSeparator = new QAction(this);
actGoodsSeparator->setSeparator(true);
actGoodsDelete = new QAction(tr("删除商品"), this);
connect(actGoodsDelete, SIGNAL(triggered()), this, SLOT(on_actGoodsDelete_triggered()));
connect(pushButtonGoodsDelete, SIGNAL(clicked()), this, SLOT(on_actGoodsDelete_triggered()));
tableViewGoods->addAction(actGoodsAdd);
tableViewGoods->addAction(actGoodsEdit);
tableViewGoods->addAction(actGoodsDelete);
tableViewGoods->addAction(actGoodsSeparator);
tableViewGoods->addAction(actGoodsInout);
//=================================================================================
queryModelCustomer.setQuery();
tableViewCustomer->setModel(&queryModelCustomer);
tableViewCustomer->verticalHeader()->setDefaultSectionSize(20);
tableViewCustomer->verticalHeader()->hide();
tableViewCustomer->setColumnWidth(0, 60);
tableViewCustomer->setColumnWidth(1, 55);
tableViewCustomer->setColumnWidth(2, 70);
tableViewCustomer->setColumnWidth(3, 50);
tableViewCustomer->setColumnWidth(4, 80);
tableViewCustomer->setColumnWidth(5, 80);
tableViewCustomer->setColumnWidth(6, 70);
tableViewCustomer->setColumnWidth(7, 100);
tableViewCustomer->setColumnWidth(8, 70);
tableViewCustomer->setColumnWidth(9, 100);
tableViewCustomer->hideColumn(10);
tableViewCustomer->hideColumn(11);
queryModelCustomer.sort(0);
QHeaderView *headerCustomer = tableViewCustomer->horizontalHeader();
headerCustomer->setSortIndicator(0, Qt::AscendingOrder);
headerCustomer->setSortIndicatorShown(true);
headerCustomer->setClickable(true);
connect(headerCustomer, SIGNAL(sectionClicked(int)), tableViewCustomer, SLOT(sortByColumn(int)));
///////////////////////////////////
// 这里创建顾客表格的右键菜单
actCustomerAdd = new QAction(tr("添加顾客"), this);
connect(actCustomerAdd, SIGNAL(triggered()), this, SLOT(on_actCustomerAdd_triggered()));
connect(pushButtonCustomerAdd, SIGNAL(clicked()), this, SLOT(on_actCustomerAdd_triggered()));
actCustomerEdit = new QAction(tr("修改信息"), this);
connect(actCustomerEdit, SIGNAL(triggered()), this, SLOT(on_actCustomerEdit_triggered()));
connect(pushButtonCustomerEdit, SIGNAL(clicked()), this, SLOT(on_actCustomerEdit_triggered()));
actCustomerDelete = new QAction(tr("删除顾客"), this);
connect(actCustomerDelete, SIGNAL(triggered()), this, SLOT(on_actCustomerDelete_triggered()));
connect(pushButtonCustomerDelete, SIGNAL(clicked()), this, SLOT(on_actCustomerDelete_triggered()));
tableViewCustomer->addAction(actCustomerAdd);
tableViewCustomer->addAction(actCustomerEdit);
tableViewCustomer->addAction(actCustomerDelete);
//==========================================
/*
QVBoxLayout *consumeLayout = new QVBoxLayout(this);
QSplitter *splitter = new QSplitter(Qt::Vertical, this);
splitter->addWidget(frameConsumeTop);
splitter->addWidget(frameConsumeBottom);
consumeLayout->addWidget(splitter);
pageConsume->setLayout(consumeLayout);
QVBoxLayout *consumeBottomLayout = new QVBoxLayout(this);
QSplitter *splitter2 = new QSplitter(Qt::Horizontal, this);
splitter2->addWidget(tableViewConsumeBottomLeft);
splitter2->addWidget(tableViewConsumeBottomRight);
consumeBottomLayout->addWidget(frameConsumeBottomTop);
consumeBottomLayout->addWidget(splitter2);
frameConsumeBottom->setLayout(consumeBottomLayout);
*/
//=================================================================================
///////////////////////////////////////////////////////////////////
queryModelConsumeTop.setQuery();
tableViewConsumeTop->setModel(&queryModelConsumeTop);
tableViewConsumeTop->verticalHeader()->setDefaultSectionSize(20);
tableViewConsumeTop->verticalHeader()->hide();
tableViewConsumeTop->setColumnWidth(0, 60);
tableViewConsumeTop->setColumnWidth(1, 60);
tableViewConsumeTop->setColumnWidth(2, 100);
tableViewConsumeTop->setColumnWidth(3, 90);
tableViewConsumeTop->hideColumn(4);
tableViewConsumeTop->hideColumn(5);
tableViewConsumeTop->hideColumn(6);
tableViewConsumeTop->hideColumn(7);
tableViewConsumeTop->hideColumn(8);
tableViewConsumeTop->hideColumn(9);
tableViewConsumeTop->hideColumn(10);
tableViewConsumeTop->hideColumn(11);
tableViewConsumeTop->hideColumn(12);
queryModelConsumeTop.sort(0);
QHeaderView *headerConsumeTop = tableViewConsumeTop->horizontalHeader();
headerConsumeTop->setSortIndicator(0, Qt::AscendingOrder);
headerConsumeTop->setSortIndicatorShown(true);
headerConsumeTop->setClickable(true);
connect(headerConsumeTop, SIGNAL(sectionClicked(int)), tableViewConsumeTop, SLOT(sortByColumn(int)));
//===================================================================
actConsumeViewCustomer = new QAction(tr("查看消费"), this);
connect(actConsumeViewCustomer, SIGNAL(triggered()), this, SLOT(on_actConsumeViewCustomer_triggered()));
connect(pushButtonConsumeViewCustomer, SIGNAL(clicked()), this, SLOT(on_actConsumeViewCustomer_triggered()));
tableViewConsumeTop->addAction(actConsumeViewCustomer);
connect(tableViewConsumeTop, SIGNAL(pressed(const QModelIndex&)), this, SLOT(on_tableViewConsumeTop_activated(const QModelIndex&)));
labelConsumeCustomerRemark->clear();
labelConsumeCustomerAddress->clear();
labelConsumeCustomerMobile->clear();
labelConsumeCustomerPhone->clear();
labelConsumeCustomerCompany->clear();
labelConsumeCustomerEmploy->clear();
labelConsumeCustomerBirth->clear();
labelConsumeCustomerAddDate->clear();
labelConsumeCustomerGender->clear();
labelConsumeCustomerCustomerNo->clear();
labelConsumeCustomerCustomerName->clear();
//////////////////////////////////////////////////////////////////////
//=================================================================================
// 消费次数列表
queryModelConsumeBottomLeft.setQuery();
tableViewConsumeBottomLeft->setModel(&queryModelConsumeBottomLeft);
tableViewConsumeBottomLeft->verticalHeader()->setDefaultSectionSize(20);
tableViewConsumeBottomLeft->verticalHeader()->hide();
tableViewConsumeBottomLeft->setColumnWidth(0, 120);
tableViewConsumeBottomLeft->setColumnWidth(1, 100);
tableViewConsumeBottomLeft->hideColumn(2);
queryModelConsumeBottomLeft.sort(0);
QHeaderView *headerConsumeBottomLeft = tableViewConsumeBottomLeft->horizontalHeader();
headerConsumeBottomLeft->setSortIndicator(0, Qt::AscendingOrder);
headerConsumeBottomLeft->setSortIndicatorShown(true);
headerConsumeBottomLeft->setClickable(true);
connect(headerConsumeBottomLeft, SIGNAL(sectionClicked(int)), tableViewConsumeBottomLeft, SLOT(sortByColumn(int)));
//-----------------------------------------------
actConsumeViewDetail = new QAction(tr("查看详细"), this);
connect(actConsumeViewDetail, SIGNAL(triggered()), this, SLOT(on_actConsumeViewDetail_triggered()));
connect(pushButtonConsumeBottomViewDetail, SIGNAL(clicked()), this, SLOT(on_actConsumeViewDetail_triggered()));
actConsumeAdd = new QAction(tr("添加消费"), this);
connect(actConsumeAdd, SIGNAL(triggered()), this, SLOT(on_actConsumeAdd_triggered()));
connect(pushButtonConsumeAdd, SIGNAL(clicked()), this, SLOT(on_actConsumeAdd_triggered()));
actConsumeEdit = new QAction(tr("修改消费"), this);
connect(actConsumeEdit, SIGNAL(triggered()), this, SLOT(on_actConsumeEdit_triggered()));
connect(pushButtonConsumeEdit, SIGNAL(clicked()), this, SLOT(on_actConsumeEdit_triggered()));
actConsumeDelete = new QAction(tr("删除消费"), this);
connect(actConsumeDelete, SIGNAL(triggered()), this, SLOT(on_actConsumeDelete_triggered()));
connect(pushButtonConsumeDelete, SIGNAL(clicked()), this, SLOT(on_actConsumeDelete_triggered()));
actConsumeSeparator = new QAction(this);
actConsumeSeparator->setSeparator(true);
tableViewConsumeBottomLeft->addAction(actConsumeViewDetail);
tableViewConsumeBottomLeft->addAction(actConsumeSeparator);
tableViewConsumeBottomLeft->addAction(actConsumeAdd);
tableViewConsumeBottomLeft->addAction(actConsumeEdit);
tableViewConsumeBottomLeft->addAction(actConsumeDelete);
connect(tableViewConsumeBottomLeft, SIGNAL(pressed(const QModelIndex&)), this, SLOT(on_tableViewConsumeBottomLeft_activated(const QModelIndex&)));
//==================================================================================
//=================================================================================
// 详细消费列表
queryModelConsumeBottomRight.setQuery();
tableViewConsumeBottomRight->setModel(&queryModelConsumeBottomRight);
tableViewConsumeBottomRight->verticalHeader()->setDefaultSectionSize(20);
tableViewConsumeBottomRight->verticalHeader()->hide();
tableViewConsumeBottomRight->setColumnWidth(0, 80);
tableViewConsumeBottomRight->setColumnWidth(1, 100);
tableViewConsumeBottomRight->setColumnWidth(2, 60);
tableViewConsumeBottomRight->setColumnWidth(3, 60);
tableViewConsumeBottomRight->setColumnWidth(4, 60);
tableViewConsumeBottomRight->hideColumn(5);
tableViewConsumeBottomRight->hideColumn(6);
tableViewConsumeBottomRight->hideColumn(7);
tableViewConsumeBottomRight->hideColumn(8);
tableViewConsumeBottomRight->hideColumn(9);
tableViewConsumeBottomRight->hideColumn(10);
queryModelConsumeBottomRight.sort(0);
QHeaderView *headerConsumeBottomRight = tableViewConsumeBottomRight->horizontalHeader();
headerConsumeBottomRight->setSortIndicator(0, Qt::AscendingOrder);
headerConsumeBottomRight->setSortIndicatorShown(true);
headerConsumeBottomRight->setClickable(true);
connect(headerConsumeBottomRight, SIGNAL(sectionClicked(int)), tableViewConsumeBottomRight, SLOT(sortByColumn(int)));
//----------------------------------------------------------------------------------
actConsumeGoodsView = new QAction(tr("查看商品"), this);
connect(actConsumeGoodsView, SIGNAL(triggered()), this, SLOT(on_actConsumeGoodsView_triggered()));
connect(pushButtonConsumeGoodsView, SIGNAL(clicked()), this, SLOT(on_actConsumeGoodsView_triggered()));
actConsumeGoodsAdd = new QAction(tr("添加产品"), this);
connect(actConsumeGoodsAdd, SIGNAL(triggered()), this, SLOT(on_actConsumeGoodsAdd_triggered()));
connect(pushButtonConsumeGoodsAdd, SIGNAL(clicked()), this, SLOT(on_actConsumeGoodsAdd_triggered()));
actConsumeGoodsEdit = new QAction(tr("修改产品"), this);
connect(actConsumeGoodsEdit, SIGNAL(triggered()), this, SLOT(on_actConsumeGoodsEdit_triggered()));
connect(pushButtonConsumeGoodsEdit, SIGNAL(clicked()), this, SLOT(on_actConsumeGoodsEdit_triggered()));
actConsumeGoodsDelete = new QAction(tr("删除产品"), this);
connect(actConsumeGoodsDelete, SIGNAL(triggered()), this, SLOT(on_actConsumeGoodsDelete_triggered()));
connect(pushButtonConsumeGoodsDelete, SIGNAL(clicked()), this, SLOT(on_actConsumeGoodsDelete_triggered()));
actConsumeGoodsSeparator = new QAction(this);
actConsumeGoodsSeparator->setSeparator(true);
tableViewConsumeBottomRight->addAction(actConsumeGoodsView);
tableViewConsumeBottomRight->addAction(actConsumeGoodsSeparator);
tableViewConsumeBottomRight->addAction(actConsumeGoodsAdd);
tableViewConsumeBottomRight->addAction(actConsumeGoodsEdit);
tableViewConsumeBottomRight->addAction(actConsumeGoodsDelete);
//------------------------------------------------------------------------
//==================================================================================
pushButtonConsumeEdit->hide();
pushButtonConsumeGoodsEdit->hide();
actConsumeEdit->setVisible(false);
actConsumeGoodsEdit->setVisible(false);
setConsumeBottomRightLabel(true);
setConsumeBottomLeftLabel(true);
}
MainWindow::~MainWindow()
{
db.close();
}
void MainWindow::on_actionAboutSoftware_triggered()
{
QMessageBox::about(this, tr("关于本软件"), tr("使用Qt4做的一个简单的美容院管理系统,这是0.0.2版,Build 20060904,待逐步加强"));
}
void MainWindow::on_actionGoods_triggered()
{
stackedWidget->setCurrentWidget(pageGoods);
}
void MainWindow::on_actionCustomer_triggered()
{
stackedWidget->setCurrentWidget(pageCustomer);
}
void MainWindow::on_actionConsume_triggered()
{
stackedWidget->setCurrentWidget(pageConsume);
}
void MainWindow::on_actionReport_triggered()
{
stackedWidget->setCurrentWidget(pageReport);
}
void MainWindow::on_actGoodsAdd_triggered()
{
if (db.isOpen())
{
GoodsEditDialog goodsEditDialog(this);
goodsEditDialog.exec();
if (goodsEditDialog.result() == QDialog::Accepted)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -