商品管理系统(QT+数据库)
2016-07-25 10:42
405 查看
设计好大致界面
界面设计部分代码:
在UI中加入一个formlayout,然后设置每个功能的界面,按键按下,展现相关界面,隐藏其它界面
数据库部分:
1.连接数据库
2.为新的数据库创建条目
3.增加数据
其实可以用此方法修改数据,只需改为
4.修改数据
5删除数据
6.查询数据
7.显示
注:数据库更新后,显示自动更新
详情见工程
http://download.csdn.net/detail/qq_25716575/9585196
欢迎大家共同交流
界面设计部分代码:
//-----------------------出货界面--------------------------- pushout = new QGroupBox(tr("出货")); QFormLayout *push_layout = new QFormLayout(pushout); // QComboBox chioce; // choice->addItem(tr("名称")); // choice->addItem(tr("数量")); countout=new QSpinBox();//选择数量 nameout=new QLineEdit();//输入商品名称 checkout = new QPushButton(tr("出货"));//确认按钮 countout->setMaximum(10000);//设置数量输入最多不超过1000 countout->setMaximumWidth(100);//设置最数量输入框大小 checkout->setMaximumWidth(100); push_layout->addRow(new QLabel(tr("名称")),nameout); push_layout->addRow(new QLabel(tr("数量")),countout); push_layout->addRow(checkout); push_layout->setMargin(100); ui->formLayout->addWidget(pushout); pushout->hide(); connect(checkout,SIGNAL(clicked()),this,SLOT(on_checkout_clicked()));//出货确认按钮传送信息
在UI中加入一个formlayout,然后设置每个功能的界面,按键按下,展现相关界面,隐藏其它界面
void MainWindow::on_pushButton_3_clicked()//进入出货界面 { view->hide(); comein->hide(); warn->hide(); pushout->show(); }
数据库部分:
1.连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("database.db"); if(!db.open()) { QMessageBox::information(0,"错误","数据"); } else { 。。。。。。。。 }
2.为新的数据库创建条目
QSqlQuery query; QString create_sql = "create table goods (names varchar primary key, goodin int, goodout int, surplus int, tip int)";//不分大小写,goods为表的名称,括号里为条目 query.prepare(create_sql); if(!query.exec()) { qDebug()<<"table not created!"; } else { qDebug()<<"table created!"; }
3.增加数据
int row = model->rowCount(); QSqlRecord record = model->record(); record.setValue("names",name_text); record.setValue("goodin",count_text); record.setValue("goodout",0); record.setValue("surplus",count_text); record.setValue("tip",leastin_text); model->insertRecord(row,record); model->submitAll();
其实可以用此方法修改数据,只需改为
model->setRecord(row,record);
4.修改数据
model.setData(model.index(0,0),"毛笔");//这里可以利用index修改表中任意数据, //index(ROW,COL) model.setData(model.index(0,1),10); model.setData(model.index(0,2),5); model.setData(model.index(0,3),5); model.setData(model.index(0,4),2); model.submitAll();
5删除数据
int curRow = view->currentIndex().row(); model->removeRow(curRow); int ok = QMessageBox::warning(0,"确定?","删除?",QMessageBox::Yes,QMessageBox::No); if(ok==QMessageBox::Yes) { model->submitAll(); } else { model->revertAll(); }
6.查询数据
model->record(row).value(".....")
7.显示
model = new QSqlTableModel(); model->setTable("goods"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->select();//数据库是否选择表成功,之前编程错误,应该改为if是否选择成功,是才能下一步操作 //model->removeColumn(0); // don't show the ID model->setHeaderData(0, Qt::Horizontal, tr("商品名称")); model->setHeaderData(1, Qt::Horizontal, tr("入货")); model->setHeaderData(2, Qt::Horizontal, tr("出货")); model->setHeaderData(3, Qt::Horizontal, tr("剩余")); model->setHeaderData(4, Qt::Horizontal, tr("提醒")); view = new QTableView; view->setModel(model); view->show(); ui->formLayout->addWidget(view);
注:数据库更新后,显示自动更新
详情见工程
http://download.csdn.net/detail/qq_25716575/9585196
欢迎大家共同交流
相关文章推荐
- QT静态编译和动态编译
- qt获取内网IP、外网IP和Mac地址
- Qt字符串编码处理
- QT第五天学习
- QT第四天学习
- QT发布时遇到0x00000007b问题
- QT第三天学习
- QT_文本编辑器_源码下载
- Qt如何去掉按钮等控件的虚线框(焦点框)(两种方法)
- Qt修改文件内容
- Qt自定义带游标的slider,在滑块正上方显示当前值(非常有意思,继承QSlider之后增加一个QLabel,然后不断移动它)
- Qt基于FFmpeg播放本地 H.264(H264)文件(灿哥哥的博客)
- QTableView使用HTML显示富文本
- Ubuntu 16.04中 Qt 5.6 中无法调用fcitx输入中文的问题
- QT的信号与槽机制介绍
- Qt浅谈之三十二二维码条形码解析
- Qt实现窗口关闭动画效果
- QT修改应用程序图标
- Qt之QRadioButton
- Qt之QRadioButton