QTday6作业

思维导图:

 widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QSqlDatabase>//数据库管理类
#include <QSqlQuery>//执行sql语句类
#include <QSqlRecord>//数据库记录类
#include <QSqlError>//数据库错误类
#include <QMessageBox>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = nullptr);~Widget();private slots:void on_addBtn_clicked();void on_showBtn_clicked();void on_delBtn_clicked();void on_dataBtn_clicked();private:Ui::Widget *ui;QSqlDatabase db;
};#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);//判断是否有该数据库if(!db.contains("stuInfo.db")){//说明数据库不存在db = QSqlDatabase::addDatabase("QSQLITE");//给刚刚创建的数据库命名db.setDatabaseName("stuInfo");}//打开数据库if(!db.open()){QMessageBox::information(this,"错误","打开数据库失败");return;}//创建数据库表//实例化一个执行sql语句的对象QSqlQuery query;//准备sql语句QString sql="create table if not exists stu_info_table( ""id integer primary key autoincrement,""numb integer,""name varchar(20),""sex varchar(4),""score integer)";//执行sql语句if(query.exec(sql)){QMessageBox::information(this,"","创建数据库表成功");}else {QMessageBox::information(this,"","创建数据库表失败");}}Widget::~Widget()
{delete ui;
}//添加按扭对应的槽函数处理
void Widget::on_addBtn_clicked()
{//获取ui界面上的成员信息int numb = ui->stuEdit->text().toUInt();QString name = ui->nameEdit->text();QString sex = ui->sexEdit->text();int score = ui->socreEdit->text().toUInt();//判断用户是否填写完整信息if(numb == 0 || name.isEmpty() || sex.isEmpty() || score == 0){QMessageBox::information(this,"","请将信息填写完整");return;}//实例化一个执行sql语句的对象QSqlQuery query;//准备sql语句QString sql = QString("insert into stu_info_table(numb,name,sex,score)""values(%1,'%2','%3',%4)").arg(numb).arg(name).arg(sex).arg(score);//执行sql语句if(query.exec(sql)){QMessageBox::information(this,"","添加成功");}else {QMessageBox::information(this,"","添加失败");}
}//显示功能
void Widget::on_showBtn_clicked()
{//准备sql语句QSqlQuery query;//ui->tableWidget->clear();QString sql = "select * from stu_info_table";if(!query.exec(sql)){QMessageBox::information(this,"","查询失败");return;}int i=0;//记录行号while(query.next()){for(int j=0;j<query.record().count();j++)//遍历列数{ui->tableWidget->setItem(i,j,new QTableWidgetItem(query.value(j+1).toString()));}i++;}
}//删除成员
void Widget::on_delBtn_clicked()
{int numb = ui->stuEdit->text().toUInt();QString name = ui->nameEdit->text();QString sex = ui->sexEdit->text();int score = ui->socreEdit->text().toUInt();//准备sql语句QSqlQuery query;//QString sql = QString("delete from stu_info_table where numb=%1 and name='%2'  and sex='%3' and score='%4'").arg(numb).arg(name).arg(sex).arg(score);QString sql ;sql = QString("delete from stu_info_table where name='%2'").arg(name);if(numb != 0){sql = QString("delete from stu_info_table where numb=%1").arg(numb);}else if (!name.isEmpty()){sql = QString("delete from stu_info_table where name='%2'").arg(name);}else if (!sex.isEmpty()){sql = QString("delete from stu_info_table where sex='%3'").arg(sex);}else if (score != 0){sql = QString("delete from stu_info_table where score='%4'").arg(score);}if(!query.exec(sql)){QMessageBox::information(this,"","删除失败");return;}
}void Widget::on_dataBtn_clicked()
{int numb = ui->stuEdit->text().toUInt();QString name = ui->nameEdit->text();QString sex = ui->sexEdit->text();int score = ui->socreEdit->text().toUInt();QSqlQuery query;QString sql = QString("update stu_info_table set name='%1',sex='%2',score=%3 where numb=%4").arg(name).arg(sex).arg(score).arg(numb);if(!query.exec(sql)){QMessageBox::information(this,"","修改失败");return;}}

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
#include<opencv2/face.hpp>
#include <vector>
#include <map>
#include <QMessageBox>
#include <QDebug>
#include <QFile>
#include <QTextStream>
#include <QDateTime>
#include <QTimerEvent>
#include<QtSerialPort/QtSerialPort>
#include<QtSerialPort/QSerialPortInfo>
using namespace  cv;
using namespace cv::face;
using namespace std;namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;
};#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();//将本地的视频将在到程序中来VideoCapture v;v.open("D:\\opencv\\heads\\01.mp4");//定义一个存放从视频里读取到的一帧图像Mat src;while(v.read(src)){//显示图片imshow("test1",src);if( 27 == waitKey(30)){break;}}Mat gray;//灰度处理while(v.read(src)){cvtColor(src,gray,CV_BGR2GRAY);//显示图片imshow("test2",gray);if( 27 == waitKey(30)){break;}}Mat dst;while(v.read(src)){cvtColor(src,gray,CV_BGR2GRAY);equalizeHist(gray,dst);//显示图片imshow("test3",dst);if( 27 == waitKey(30)){break;}}return a.exec();
}

 widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}

 

效果图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用ChatGPT对进行论文改写与润色

一、内容改写 关键在于明确改写的具体要求。 例如:[论文内容] 可以指明需要提升该段落的流畅性和逻辑连贯性。 常用指令 细微调整文本 轻微编辑 重写以增强表述清晰度 简化句式 校正语法和拼写错误 提升文本的流畅性和条理性 优化词汇使用 调整文本风格 进行深度编辑…

leetcode 17 电话号码字母组合

题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “23” 输出&#xf…

2024年烟花爆竹储存证考试题库及烟花爆竹储存试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年烟花爆竹储存证考试题库及烟花爆竹储存试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲随机…

实践学习PaddleScience飞桨科学工具包

实践学习PaddleScience飞桨科学工具包 动手实践&#xff0c;在实践中学习&#xff01;本项目可以在AIStudio平台一键运行&#xff01;地址&#xff1a;https://aistudio.baidu.com/projectdetail/4278591 本项目第一次执行会报错&#xff0c;再执行一次即可。若碰到莫名其妙的…

JavaScript-循环嵌套断点调试-笔记

1.do...while循环 do while语法结构&#xff1a; 循环初始值&#xff1b; do{ //代码&#xff1b; 增量&#xff1b; }while(循环条件)&#xff1b; <script> // 输出十句 &#xff1a; 你好世界 var …

数据可视化大屏自适应,保持比例不变形,满足不同分辨率的需求——利用transform的scale属性缩放,缩放整个页面。

文章目录 一、需求背景&#xff1a;二、需求分析&#xff1a;三、选择方案&#xff1a;四、实现代码&#xff1a;五、效果预览&#xff1a;六、封装组件&#xff1a; 一、需求背景&#xff1a; 数据可视化大屏是一种将数据、信息和可视化效果集中展示在一块或多块大屏幕上的技…

flink 1.18 sql demo

flink 1.18 sql demo 更换flink-table-planner 为 flink-table-planner-loader pom.xml <dependencies><!-- https://mvnrepository.com/artifact/org.apache.flink/flink-table-api-java-uber --><dependency><groupId>org.apache.flink</groupId…

2020年财政收支

偶感兴趣&#xff0c;花了点时间整理 有兴趣的可以参照下面的链接整理完整2022年的数据&#xff0c;2023年的数据还有12月份的数据未出&#xff0c;估计在这几天出。 附 2022年的财政收支情况 2022年基金支出预算表 2020年的社保收入是7.6万亿。 上图个税金额写错了&#xff0c…

信息安全应急演练方案-模板

文章目录 信息安全应急演练方案一、应急演练总体目标二、安全应急演练的具体目标为&#xff1a;三、应急演练计划安排&#xff1a;3.1 黑客攻击服务器应急演练时间安排&#xff1a;演练地点&#xff1a;演练步骤&#xff1a; 3.2 大规模病毒&#xff08;含恶意软件&#xff09;…

Mindspore 公开课 - CodeGeeX

CodeGeeX: 多语言代码生成模型 CodeGeeX 是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现&#xff0c;在鹏城实验室“鹏城云脑II”中的192个节点&#xff08;共1536个国产昇腾910 AI处理器&#xff09;上训练而成。截至2022年6月22日&…

数据库结构文档生成方法二(EZDML)

EZDML 下载链接&#xff1a;EZDML - 下载 我们常用的是数据建模有PowerDesigner,EZDML也是一款数据建模工具&#xff0c;而且功能很多&#xff0c;除了生成sql&#xff0c;还可以生成前端后端代码等等。 我们直接下载最新版后点击安装&#xff0c;打开后会默认打开示例&#…

基于springboot数码论坛系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把数码论坛与现在网络相结合&#xff0c;利用java技术建设数码论坛系统&#xff0c;实现数码论坛的信息化。则对于进一步提高数码论坛发展&#xff0c;丰富数码论坛经验能起到不少的促进作用。 数码论坛系统能够通过互联网得到广泛…

window系统安装MySQL -- MySQL(1)

第一步&#xff1a; 下载mysql安装包 1&#xff09;打开MySQL官方链接&#xff1a;https://www.mysql.com 2&#xff09;选择 DOWNLOADS 3&#xff09;往下滑&#xff0c;点击社区版本下载 4&#xff09;点击 MySQL installer for Windows 5&#xff09;点击安装 第二步&#…

2024年腾讯云服务器购买价格,真便宜

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

细说JavaScript对象(JavaScript对象详解)

在JavaScript中对象作为数据类型之一&#xff0c;它的数据结构区别于其余5中数据类型&#xff0c;从数据结构角度看对象就是数据值的几个&#xff0c;其书就结构就是若干组名值对&#xff0c;类似于其他语言中的哈希、散列 关联数组等&#xff0c;但对象在JavaScript中不仅仅扮…

如何通过pytest+requests+allure自动化测试接入Jenkins?测开必备

最近在这整理知识&#xff0c;发现在pytest的知识文档缺少系统性&#xff0c;这里整理一下&#xff0c;方便后续回忆。 在python中&#xff0c;大家比较熟悉的两个框架是unittest和pytest&#xff1a; Unittest是Python标准库中自带的单元测试框架&#xff0c;Unittest有时候也…

2024腾讯云服务器购买指南一步步全流程攻略(超详细)

腾讯云服务器购买流程很简单&#xff0c;有两种购买方式&#xff0c;直接在官方活动上购买比较划算&#xff0c;在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵&#xff0c;但是自定义购买云服务器CPU内存带宽配置选择范围广&#xff0c;活动上购买只能选择固定的活动…

flutter base64图片保存到相册

首先base64转成uint8List&#xff0c;然后再用插件保存到相册&#xff08;没有内置的方法处理&#xff09; 保存图片的插件 photo_manager: ^2.6.0完整代码如下 //保存图片savePhotoJs(String base64String) async {Uint8List bytes UriData.parse(base64String).contentAsB…

音视频中的DTS和PTS区别

一、什么是PTS、DTS 1.PTS:即显示时间戳&#xff0c;用来告诉播放器在什么时候显示这一帧数据 2.DTS:即解码时间戳&#xff0c;用来告诉播放器在什么时间来解码这一帧的数据 3.GOP&#xff1a;MPEG使用的一种视频压缩技术 总的来说PTS和DTS用于指导播放器端的行为 二&…

导图解房(04)验房流程总结

本章主要是对模型 流程的使用&#xff0c;雷老板也说过&#xff1a;99%的问题实际上都有明确的解决方案和流程&#xff0c;只要问一问就好了&#xff0c;验房这件事而也是如此。 1 验三书一表一证 验房第一步并不是直接看房&#xff0c;而是看三书一表一证&#xff0c;先确保…