汽车管理系统——登录界面

devtools/2024/10/22 8:30:00/

目录

  • 如何实现登录?
  • 登录成功如何显示下一个界面?
    • return a.exec()这边的a是什么对象
    • 如何创建数据库中的密码表?
  • 为什么这边添加QT设计师界面类,不是头文件源文件
    • 如何获取文本框内的信息
    • 密码不一定是整型,需要用字符串,所以要把密码表中转为字符串
  • 密码输入错误之后怎么处理?
    • 如何弹出消息
      • QMessageBox::Ok这个是怎么用?
    • 取消按钮应该怎么使用?

如何实现登录?

密码的验证
获取控件中密码,与数据库中密码比对,如果成功就跳转到下一个界面,不成功就告知密码错误
用一个信号槽,
QSqlquery query
query.exec(Qstring(“select password from table”))
while(query.next()){
if(query.value[0]==ui->lineedit->currenttext()->toint)
{
showwidget()
}
}

登录成功如何显示下一个界面?

Widget w;LoginDialog dlg;if(dlg.exec()==QDialog::Accepted){w.show();return a.exec();}else{return 0;}

在main中声明两个窗口对象,使用.exec运行登录界面,结果如果返回ACCEPTED,那就.show()显示窗口
dlg.exec() == QDialog::Accepted 是 Qt 中用于判断对话框执行后是否返回了“接受”状态的一种常见方法。它通常在模式对话框的上下文中使用,通过 exec() 方法运行对话框,并根据对话框返回的结果执行不同的操作。

return a.exec()这边的a是什么对象

在这段代码中,a 是一个 QApplication 对象:

QApplication a(argc, argv);

解释:

  • QApplication a(argc, argv); 创建了一个 QApplication 对象 a,这是任何 Qt GUI 应用程序的核心对象,它负责管理应用程序的控制流和主要设置。argcargv 是从命令行传递过来的参数,它们会传递给 QApplication 构造函数,以便应用程序可以处理命令行参数。

  • return a.exec(); 表示进入应用程序的事件循环exec() 会启动事件循环,确保应用程序在执行期间能够处理用户输入(如鼠标和键盘事件)、窗口管理事件、以及其他来自操作系统的事件。它阻塞程序的主线程,直到应用程序退出。

代码逻辑:

  1. 创建 QApplication 对象 a 来管理应用程序。
  2. 如果 createConnection()createXml() 失败,则直接退出程序,返回 0
  3. 创建主窗口 Widget w 和登录对话框 LoginDialog dlg
  4. 调用 dlg.exec(),以模态方式显示登录对话框,等待用户操作。如果用户点击了“确定”(QDialog::Accepted),程序显示主窗口 w 并进入事件循环 (a.exec()),保持程序运行。
  5. 如果用户取消了登录操作(QDialog::Rejected),程序返回 0 并退出。

事件循环的作用:
a.exec() 启动后,程序会进入事件循环,应用程序将保持运行并响应各种事件(如鼠标点击、键盘输入等)。当主窗口被关闭或 QApplication::quit() 被调用时,exec() 会返回,并且程序将退出事件循环,结束应用程序的生命周期。

总结:

  • aQApplication 对象,管理 Qt GUI 应用程序的生命周期。
  • a.exec() 启动事件循环,确保程序能够持续运行,直到用户关闭窗口或调用退出操作。
 //创建密码表
query.exec("create table password(pwd varchar primary key)");
query.exec("insert into password values('123456')");

如何创建数据库中的密码表?

create table password(pwd varchar primary key)
varchar是可变长度
然后插入一个密码

在这里插入图片描述

为什么这边添加QT设计师界面类,不是头文件源文件

在这里插入图片描述
QT设计师界面类会自动创建头文件、CPP和UI文件

在这里插入图片描述
然后添加控件元素
在这里插入图片描述

setFixedSize(400,300);
setWindowTitle(tr("登录"));
ui->pwdLineEdit->setFocus();
ui->loginBtn->setDefault(true);

setFixedSize(400,300);: 将窗口的大小固定为400x300像素,禁止用户调整窗口的大小。
setWindowTitle(tr(“登录”));: 设置窗口的标题为“登录”,并使用 tr() 函数来确保该字符串可以被翻译(在多语言应用中使用)。
ui->pwdLineEdit->setFocus();: 设置密码输入框 (pwdLineEdit) 在窗口打开时自动获得焦点,这样用户可以立即输入密码。
ui->loginBtn->setDefault(true);: 将登录按钮 (loginBtn) 设置为默认按钮,用户按回车键时会自动触发该按钮的点击事件。

如何获取文本框内的信息

->text()

密码不一定是整型,需要用字符串,所以要把密码表中转为字符串

query.value(0).toString()

密码输入错误之后怎么处理?

先告知用户
清空之前的输入,然后重新提交

如何弹出消息

QMessageBox::warning(this,tr("密码错误"),tr("请输入正确的密码再登录!"),QMessageBox::Ok);

QMessageBox::Ok这个是怎么用?

QMessageBox::Ok 是 Qt 框架中的一个标准按钮枚举,通常用于对话框中表示“确定”按钮。它常与 QMessageBox 类配合使用,用于创建消息框并显示给用户,等待用户进行交互(如点击“确定”按钮)。

 ui->pwdLineEdit->clear();
ui->pwdLineEdit->setFocus();

清除之前的输入,重新输入

取消按钮应该怎么使用?

QDialog::reject();

QDialog::reject() 是 Qt 中 QDialog 类的一个方法,通常用于关闭对话框,并返回一个“拒绝”状态(一般表示用户取消了操作或不想继续)。与 QDialog::accept() 相对,reject() 用于处理用户关闭对话框时的取消操作。
在这里插入图片描述
就是退出按钮,点击直接关闭对话框


http://www.ppmy.cn/devtools/127784.html

相关文章

【状态机DP】力扣1262. 可被三整除的最大和

给你一个整数数组 nums,请你找出并返回能被三整除的元素 最大和。 示例 1: 输入:nums [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示…

OSI参考模型与TCP/IP模型

OSI参考模型 物理层 定义电压、接口、线缆标准、传输距离、传输介质等物理参数。数据链路层(确定范围里的某一个) MAC地址寻址网络层(确定一个范围) 网络地址层寻址、路由传输层(区分不同的程序) 数据分段…

手机淘宝自动下单退货自动化RPA脚本机器人

使用手机集线器连接多个手机并发运行。 脚本分3个部分(读取本地连接下单,退货获取退货地址信息,填写快递单号) 脚本部分图结构看下面的图片 部分数据统计展示

估值与周期风险评估(2024/6/30)

这是每周最重要的文章。是我投资理论体系到实盘实战的运用。一套稳定的投资体系是我长期获利的源泉。一是明确长期估值和对应的整体仓位。二是明确短期风险状态和对应的网格交易计划。每周日视频讲解实盘,交流本周估值与下周网格计划。用我公开九年的实盘&#xff0…

Linux的find命令使用指南及实际shell用例

Linux的find命令使用指南及实际shell用例 基本语法常用选项实际shell用例 find命令是Linux和UNIX系统中一个非常强大的工具,它用于在指定目录下根据给定条件搜索文件。find命令功能强大,使用灵活,可以组合多种条件和选项来精确查找文件&#…

程序员的浪漫之给对象爬数据,没想到过程中竟然被写接口的老哥字段命名给秀到了!

目录 一、序言二、分析需求三、找数据分析字段四、建个表开爬数据五、结语 一、序言 最近对象转了销售岗,她的领导布置了项任务,一周要找500个对标客户的联系电话。看她又上天眼查、企查查、爱企查,还上各种采购平台手动抄采购负责人的信息和…

semi-Naive Bayesian(半朴素贝叶斯)

semi-Naive Bayesian(半朴素贝叶斯) 引言 朴素贝叶斯算法是基于特征是相互独立这个假设开展的(为了降低贝叶斯公式: P ( c ∣ x ) P ( c ) P ( x ∣ c ) P ( x ) P(c|x) \frac {P(c)P(x|c)}{P(x)} P(c∣x)P(x)P(c)P(x∣c)​中后验概率 P …

基于几何约束的深度学习建筑震害自动识别与评估研究【附代码】

(1)提出建筑地震损伤识别评估几何约束深度学习框架 我国地域辽阔且地质构造复杂,地震等自然灾害频发,严重威胁城市建筑群服役寿命和人民生命财产安全。震后建筑损伤评估对灾后应急部署及恢复重建至关重要。传统基于结构动力学响应…