一、前言
程序系统内部的内存存储是在程序关闭后进行自动清除,这对我们记录信息和使用过程都有着极大的影响,若想做出适合平时使用的系统,结合数据库进行系统开发是最普遍和常见的方式
本文通过Qt和SQL进行结合,开发出商品库存管理系统,可以记录商品的总量,剩余量,品牌,类型以及金额,并通过数据库对数据进行存储。
二、基本原理和数据表的设计
Qt中提供的QSqlQuery类适用于连接各种类型的数据库,本文连接的是MySql数据库,出现连接问题参考上文。
数据表结构的设计一定要符合系统需要,本系统设计了类型表和品牌表,结构如下:
类型表 品牌表
Sql语句如下:
create table type(id1 int primary key,name text);
create table brand(id2 int primary key, name text,type text,price int,sum int,sell int,last int);
系统主要使用了QSqlQuery类中的方法与数据库进行联动,同时通过将ui代码载入系统进行本窗体切换不同界面,实现一个窗体完成各种功能。
首先设计不同界面的UI
主体ui界面
查询商品ui界面
ui代码生成如下:
1、打开Qt 5.12.9 for Desktop (MinGW 7.3.0 32 bit)命令行
2、切换到QT项目的路径
3、输入uic-= ui.h widget.ui
(ui文件生成.h头文件)
将生成的文件复制进入主窗体
头文件添加(选择有用的进行复制)
widget文件添加:
此时通过show()和hide()就可以控制窗体的显示和隐藏。
三、具体代码和详细设计
1.初始化
对多个界面进行初始化和隐藏,同时对数据库进行连接操作,同时写入sql语句进行建表和插入数据
void Widget::Init()
{
setSelectForm(this);
setPasssWdForm(this);
wid_select->hide();
wid_password->hide();
QString filename = "test";
QFileInfo info(filename);
bool ret = info.exists();
db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName(filename);
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("root");
db.setPort(3306);
QSqlQuery query(db);
bool ok = db.op