当前位置: 首页 > news >正文

QT--day5

注册

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include<QPushButton>
#include<QLineEdit>
#include<QLabel>
#include <QMessageBox>
#include<QString>
#include<QSqlDatabase>          //数据库管理类
#include<QSqlQuery>              //执行sql语句的类
#include<QSqlRecord>              //数据库记录的类
#include "form.h"
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;QLineEdit *zh;QLineEdit *mm;Form *f1;QSqlDatabase db;
signals:void my_sig();void jump();
public slots:void btn1_slot();void btn2_slot();void btn3_slot();
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//设置固定大小this->setFixedSize(400,300);//设置窗口标题this->setWindowTitle("HUAQI");//设置窗口图标this->setWindowIcon(QIcon("D:\\Qt\\icon\\icon\\wodepeizhenshi.png"));//构建两个按钮QPushButton *btn1=new QPushButton(QIcon("D:\\Qt\\icon\\icon\\login.png"),"登录",this);btn1->resize(100,40);btn1->move(150,250);QPushButton *btn2=new QPushButton(QIcon("D:\\Qt\\icon\\icon\\cancel.png"),"取消",this);btn2->resize(btn1->size());btn2->move(btn1->x()+125,btn1->y());connect(btn2,SIGNAL(clicked()),this,SLOT(btn2_slot()));QPushButton *btn3=new QPushButton("注册",this);btn3->resize(btn1->size());btn3->move(btn1->x()-125,btn1->y());connect(btn3,SIGNAL(clicked()),this,SLOT(btn3_slot()));//构建两个行编辑器QLineEdit *edit1=new QLineEdit(this);edit1->resize(200,30);edit1->setEchoMode(QLineEdit::Password);edit1->setText("123456");edit1->move(125,btn1->y()-50);QLineEdit *edit2=new QLineEdit(this);edit2->resize(200,30);edit2->setText("admin");edit2->move(125,edit1->y()-50);//构建三个标签QLabel *lab1=new QLabel(this);lab1->resize(30,30);lab1->setPixmap(QPixmap("D:\\Qt\\icon\\icon\\passwd.jpg"));lab1->setScaledContents(true);lab1->move(edit1->x()-40,edit1->y());QLabel *lab2=new QLabel(this);lab2->resize(lab1->size());lab2->setPixmap(QPixmap("D:\\Qt\\icon\\icon\\userName.jpg"));lab2->setScaledContents(true);lab2->move(edit2->x()-40,edit2->y());QLabel *lab3=new QLabel(this);lab3->resize(400,120);lab3->setPixmap(QPixmap("D:\\Qt\\icon\\icon\\logo.png"));lab3->setScaledContents(true);connect(btn1,&QPushButton::clicked,this,&MainWindow::btn1_slot);zh=edit2;mm=edit1;//设置数据库if(!db.contains("mydb.db")){db=QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("mydb.db");}//打开数据库if(!db.open()){QMessageBox::information(this,"失败","数据库打开失败");return;}//创建表QString sql="create table if not exists stu_info(""zhanghao varchar(20) primary key,""mima varchar(20))";QSqlQuery querry;if(!querry.exec(sql)){QMessageBox::information(this,"失败","创建表失败");return;}
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::btn1_slot()
{QString i=zh->text();QString j=mm->text();qDebug()<<i;qDebug()<<j;QString sql=QString("select * from stu_info");QSqlQuery querry;if(!querry.exec(sql)){QMessageBox::information(this,"失败","查询失败");return;}while(querry.next()){qDebug()<<querry.record().value(0).toString();qDebug()<<querry.record().value(1).toString();if(querry.record().value(0).toString()==i&&querry.record().value(1).toString()==j){QMessageBox box(QMessageBox::NoIcon,"成功","登陆成功",QMessageBox::Ok,this);int ret=box.exec();if(ret==QMessageBox::Ok){emit jump();}return;}}QMessageBox box(QMessageBox::Warning,"错误","账号或密码出错",QMessageBox::Yes|QMessageBox::No,this);box.setButtonText(QMessageBox::Yes,"继续");box.setButtonText(QMessageBox::No,"取消");int ret=box.exec();if(ret==QMessageBox::Yes){}else{this->close();}return;}void MainWindow::btn2_slot()
{QMessageBox box(QMessageBox::Question,"退出","确定要退出吗?",QMessageBox::Yes|QMessageBox::No,this);int ret=box.exec();if(ret==QMessageBox::Yes){this->close();}}void MainWindow::btn3_slot()
{QString zhanghao=zh->text();QString mima=mm->text();if(zhanghao.isEmpty()||mima.isEmpty()){QMessageBox::information(this,"提示","信息不完整");return;}QString sql=QString("insert into stu_info(zhanghao,mima)""values('%1','%2')").arg(zhanghao).arg(mima);QSqlQuery querry;if(!querry.exec(sql)){QMessageBox::information(this,"失败","添加失败");return;}else{QMessageBox::information(this,"成功","添加成功");}
}

效果图

添加

登录

相关文章:

QT--day5

注册 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QPushButton> #include<QLineEdit> #include<QLabel> #include <QMessageBox> #include<QString> #include<QSqlDatabase> …...

在windows和linux上玩转Tensorrt

为避免重复&#xff0c;一些安装内容我直接贴其他大佬的帖子了&#xff0c;我是按照他们的步骤来操作的&#xff0c;趟过一遍&#xff0c;没有问题。 本篇着重在tensort在Cmakelist中如何配置&#xff0c;以及如何配置编译动/静态库&#xff0c;比较基础&#xff0c;也是想做个…...

七天学会C语言-第五天(函数)

1. 调用有参函数 有参函数是一种接受输入参数&#xff08;参数值&#xff09;并执行特定操作的函数。通过向函数传递参数&#xff0c;你可以将数据传递给函数&#xff0c;让函数处理这些数据并返回结果。 例1&#xff1a;编写一程序&#xff0c;要求用户输入4 个数字&#xf…...

340. 至多包含 K 个不同字符的最长子串

340. 至多包含 K 个不同字符的最长子串 vip...

【分布式计算】副本数据Replicated Data

作用&#xff1a;可靠性、高性能、容错性 问题&#xff1a;如何保持一致、如何更新 问题&#xff1a;存在读写/写写冲突 一个简单的方法就是每个操作都保持顺序&#xff0c;但是因为网络延迟会导致问题 Data-centric models: consistency model?? ??? 读取时&#xff0c…...

erlang练习题(二)

题目一 替换元组或列表中指定位置的元素&#xff0c;新元素作为参数和列表或元组一起传入函数内 解答 replaceIdx(List, Index, Val) ->replaceIdx(List, Index, Val, 1, []).replaceIdx([], _, _, _, Acc) ->lists:reverse(Acc);%% 到达替换位置的处理replaceIdx([_ …...

CRM软件系统价格不同的原因

很多人在了解CRM系统时&#xff0c;发现不同品牌的CRM价格有着很大的区别。一些CRM系统只需要几千块钱&#xff0c;一些CRM系统的报价却要上万&#xff0c;甚至十几万。为什么CRM系统价格不同&#xff1f;下面我们就来说说。 1、功能不同 从功能方面来说&#xff0c;一些CRM系…...

json数据解析

目录 一、读数据 1、简单对象读取 2、数组读取 3、对象读取 二、写数据 1、简单生成JSON 2、对象数组JSON 3、嵌套对象 三、一个综合例子 1、读JSON 2、写JSON 一、读数据 1、简单对象读取 {"app": "xnwVideo","src": "C:\\buil…...

Verilog零基础入门(边看边练与测试仿真)-状态机-笔记(7-10讲)

文章目录 第七讲第八讲第九讲第十讲 第七讲 1、最简单的状态机-三角波发生器 1、两种状态的代码&#xff1a; //最简单的状态机&#xff0c;三角波发生器&#xff1b; timescale 1ns/10ps module tri_gen(clk,res,d_out); input clk; input res; o…...

【Hadoop】HDFS API 操作大全

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的帮助&#x1…...

Webpack打包图片

一、在js文件中引入图片 二、在package.config.js中配置加载器 module.exports {mode: "production", // 设置打包的模式&#xff1a;production生产模式 development开发模式module: {rules: [// 配置img加载器{test: /\.(jpg|png|gif)$/i,type:"asset/resou…...

DipC 构建基因组 3D 结构(学习笔记)

背景 本文主要记录了 DipC 数据的复现过程、学习笔记及注意事项。 目录 下载 SRA 数据使用 SRA Toolkit 转换 SRA 数据为 Fastq 格式使用 bwa 比对测序数据使用 Hickit 计算样本的基因组 3D 结构使用散点图展示 3D 结构计算 3D 结构重复模拟的稳定性其他 步骤 1. 下载 SRA…...

Qt中音频的使用

对于音频我们在使用的过程中一般是录制音频、播放音频。针对这两个需求介绍Qt中音频的使用。 Qt中音频的录制 步骤&#xff1a; 1、获取系统中的音频设备。 2、创建QAudioRecorder对象&#xff0c;指定使用的音频设备&#xff0c;通过QAudioRecorder的setAudioInput函数设置…...

[centos]centos7源码编译cmake报错Could NOT find OpenSSL

测试环境&#xff1a; centos7.9 cmake3.25.0 ./bootstrap以后报错如下&#xff1a; Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) CMake Error …...

vue若依前端项目搭建

1.项目搭建 首先进入到你需要创建的项目目录下面&#xff0c;然后输入命令vue create .创建项目 接下来选择手动搭建&#xff0c;然后把下面图片中的内容选上 再然后继续配置一些参数信息 接下来运行npm run serve项目就启动起来了 2.配置登录界面文件 首先修改src/router…...

基于win32实现TB登陆滑动验证

这里写目录标题 滑动验证触发条件&#xff1a;失败条件&#xff1a;解决方法:清除cooKie 滑动验证方式一&#xff1a;win32 api获取窗口句柄&#xff0c;选择固定位置 成功率高方式二&#xff1a; 原自动化滑动&#xff0c;成功率中 案例 先谈理论&#xff0c;淘宝 taobao.com …...

vue学习-07todoList案例与浏览器本地存储

TodoList Todo List&#xff08;任务列表&#xff09;是一个简单的Web应用程序示例&#xff0c;用于管理任务、代办事项或清单。Vue.js 是一个非常适合构建这种类型应用程序的框架&#xff0c;因为它提供了数据绑定、组件化、响应式和轻松管理用户界面的能力。 以下是一个基本…...

探索智能应用的基石:多模态大模型赋能文档图像处理

目录 0 写在前面1 文档图像分析新重点2 token荒&#xff1a;电子文档助力大模型3 大模型赋能智能文档分析4 文档图像大模型应用可能性4.1 专有大模型4.2 多模态模型4.3 设计思路 总结 0 写在前面 中国智能产业高峰论坛(CIIS2023)旨在为政企研学各界学者专家提供同台交流的机会…...

自动化发布npm包小记

1.注册npm账号 打开npm官网&#xff0c;并注册自己的npm账号 2.申请AccessToken 1.登录npm官网&#xff0c;登录成功后&#xff0c;点开右上角头像&#xff0c;并点击Access Tokens选项 2.点开Generate New Token下拉框&#xff0c;点击Classic Token(和Granular Access To…...

详解机器视觉性能指标相关概念——混淆矩阵、IoU、ROC曲线、mAP等

目录 0. 前言 1. 图像分类性能指标 1.1 混淆矩阵(Confusion Matrix) 1.2 准确率(Precision) 1.3 召回率(Recall) 1.4 F1值(F1 score) 1.5 ROC曲线(接收者工作特征曲线&#xff0c;Receiver Operating Characteristic curve) 1.6 mAP(mean Average Precision) 2. 图像分…...

想要精通算法和SQL的成长之路 - 预测赢家

想要精通算法和SQL的成长之路 - 预测赢家 前言一. 预测赢家二. 石子游戏&#xff08;预测赢家的进阶版&#xff09;2.1 博弈论 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 预测赢家 原题链接 主要思路&#xff1a; 我们定义dp[i][j]&#xff1a;在区间 [i, j] 之间先…...

高精度PWM脉宽调制信号转模拟信号隔离变送器1Hz~10KHz转0-5V/0-10V/1-5V/0-10mA/0-20mA/4-20mA

主要特性: >>精度等级&#xff1a;0.1级。产品出厂前已检验校正&#xff0c;用户可以直接使用 >>辅助电源&#xff1a;8-32V 宽范围供电 >>PWM脉宽调制信号输入: 1Hz~10KHz >>输出标准信号&#xff1a;0-5V/0-10V/1-5V,0-10mA/0-20mA/4-20mA等&…...

Vue路由和Node.js环境搭建

文章目录 一、vue路由1.1 简介1.2 SPA1.3 实例 二、Node.js环境搭建2.1 Node.js简介2.2 npm2.3 环境搭建2.3.1 下载解压2.3.2 配置环境变量2.3.3 配置npm全局模块路径和cache默认安装位置2.3.4 修改npm镜像提高下载速度 2.4 运行项目 一、vue路由 1.1 简介 Vue 路由是 Vue.js…...

【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由

一、SPA项目的构建 1、前期准备 我们的前期的准备是搭建好Node.js,测试&#xff1a; node -v npm -v2、利用Vue-cli来构建spa项目 2.1、什么是Vue-cli Vue CLI 是一个基于 Vue.js 的官方脚手架工具&#xff0c;用于自动生成vue.jswebpack的项目模板&#xff0c;它可以帮助开发者…...

Excel 通过条件格式自动添加边框

每录入一次数据就需要手动添加一次边框&#xff0c;非常麻烦&#xff0c;这不是我们想要的。 那么有没有办法&#xff0c;在我们录入数据后&#xff0c;自动帮我们加上边框呢&#xff1f; 选中要自动添加边框的列&#xff0c;然后按箭头流程操作 ↓ ↓ ↓ ↓...

mysql 备份和还原 mysqldump

因window系统为例 在mysql安装目录中的bin目录下 cmd 备份 备份一个数据库 mysqldump -uroot -h hostname -p 数据库名 > 备份的文件名.sql 备份部分表 mysqldump -uroot -h hostname -p 数据库名 [表 [表2…]] > 备份的文件名.sql ## 多个表 空格隔开&#xff0c;中间…...

ELK日志分析系统+ELFK(Filebeat)

本章结构&#xff1a; 1、ELK日志分析系统简介 2、Elasticsearch介绍&#xff08;简称ES&#xff09; 3、Logstash介绍 4、Kibana介绍 5、实验&#xff0c;ELK部署 一、ELK日志分析系统简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logst…...

ULID 在 Java 中的应用: 使用 `getMonotonicUlid` 生成唯一标识符

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

实用的嵌入式编码技巧:第三部分

每个触发器都有两个我们在风险方面违反的关键规格。“建立时间”是时钟到来之前输入数据必须稳定的最小纳秒数。“保持时间”告诉我们在时钟转换后保持数据存在多长时间。 这些规格因逻辑设备而异。有些可能需要数十纳秒的设置和/或保持时间&#xff1b;其他人则需要少一个数量…...

8个很棒的Vue开发技巧

1.路由参数解耦 通常在组件中使用路由参数&#xff0c;大多数人会做以下事情。 export default { methods: {getParamsId() {return this.$route.params.id} } } 在组件中使用 $route 会导致与其相应路由的高度耦合&#xff0c;通过将其限制为某些 URL 来限制组件的灵活性。…...

php网站后台搭建/安卓优化大师官方下载

iPhone12 mini、iPhone12、iPhone12 Pro、iPhone12 Pro Max四款手机&#xff0c;屏幕尺寸分别为5.4英寸、6.1英寸、6.1英寸、6.7英寸。采用OLED屏幕&#xff0c;多年不变的刘海屏设计。综合各方面这次iPhone12将不会有高刷新率。 iphone手机爆降2500 这活动太给力了机会不容错过…...

张家港手机网站建设/太原高级seo主管

一.apt-getapt-get是一条linux命令&#xff0c;适用于deb包管理式的操作系统&#xff0c;主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。什么是apt-get编辑是debian&#xff0c;ubuntu发行版的包管理工具&#xff0c;与红帽中的yum工具非常类似。apt…...

wordpress https 301/深圳搜索排名优化

几乎每次在代码中发现flag变量&#xff0c;我总是能嗅到一股馊味。不管你闻没闻到&#xff0c;反正我闻到了。 在代码中&#xff0c;flag通常作为标志变量的名字。但问题在于&#xff0c;不是所有的问题或代码都需要使用这种标志变量&#xff0c;更不是使用标志变量一定要用fla…...

东莞厚街网站建设/网站排名软件

转自 http://cryinstall.com/?p121 Mr高 被钟大神忽悠装了Opensuse&#xff0c;然后这俩家伙对装系统的引导项设置不对劲&#xff0c;Opensuse的grub直接装到硬盘的MBR上&#xff0c; 然后华丽丽的把原来Fedora 16的grub2给覆盖了&#xff0c;接着Opensuse又识别不了grub2,….…...

wordpress安装需要什么/网店推广有哪些方法

‍‍一些用户反馈说电脑无法安装win10系统&#xff0c;为什么会这样呢&#xff1f;出现这种情况主要是因为U盘启动时&#xff0c;默认使用EFI引导启动&#xff0c;而不是常见的MBR引导&#xff0c;怎么回事呢&#xff1f;这种情况常常出现在原来安装32位系统、现在改安64位系统…...

静态网站建设参考文献/网站制作公司

Android403R2模拟器安装在最新的Android 4.0.3 R2模拟器中&#xff0c;已经加入了GPU支持&#xff0c;可以支持OpenGL ES 2.0标准&#xff0c;让开发者可以借助模拟器来测试自己的OpenGL游戏。在去年新增了摄像头支持之后&#xff0c;现在的新版模拟器也加入了包括多点触摸输入…...