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

QT day4

思维导图

2>

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面

如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面

如果用户点击取消按钮,则弹出一个问题对话框,给出信息”您是否确定要退出登录?“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能

要求:(基于属性版、静态成员函数都使用)实现对话框的弹出

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->setupUi(this);//去掉头部this->setWindowFlag(Qt::FramelessWindowHint);//去掉空白部分this->setAttribute(Qt::WA_TranslucentBackground);//自动链接不行,就换用自动链接(就是将自动跳转的槽函数给名字稍微改一下,变成自定义的槽函数,再在这里手动调用)connect(ui->pushButton,&QPushButton::clicked, this, &Widget::pushButton_clicked);connect(ui->cha,&QPushButton::clicked, this,&Widget::cha_clicked);connect(ui->max,&QPushButton::clicked, this,&Widget::max_clicked);connect(ui->min,&QPushButton::clicked, this,&Widget::min_clicked);
}Widget::~Widget()
{delete ui;
}void Widget::pushButton_clicked() //登录按钮对应的槽函数
{qDebug()<<".............";QString zhanghao = ui->lineEdit->text();//定义账号输入的字符串为zhanghaoQString mima = ui->lineEdit_2->text();//if(zhanghao == "admin" && mima == "123456")//判断账号密码的正确性{QMessageBox msg(QMessageBox::Information,"信息","登陆成功",QMessageBox::Yes,this);msg.exec();this->close();//若都正确,则退出窗口emit my_jump();//触发信号}else{QMessageBox msg(QMessageBox::Information,"信息","账号和密码不匹配,是否重新登录",QMessageBox::Yes | QMessageBox::No,this);int ret=msg.exec();if(ret==QMessageBox::Yes){ui->lineEdit_2->clear();//清除密码框内容}else{this->close();}}
}void Widget::cha_clicked()//关闭按钮的槽函数
{qDebug()<<"关闭";QMessageBox msg(QMessageBox::Information,"信息","您是否确定要退出登录?",QMessageBox::Yes | QMessageBox::No,this);int ret=msg.exec();if(ret==QMessageBox::Yes){this->close();}else{}
}void Widget::max_clicked()//最大化按钮的槽函数
{qDebug()<<"最大化";this->showMaximized();
}void Widget::min_clicked()//最小化按钮的槽函数
{qDebug()<<"最小化";this->showMinimized();
}

使用定时器事件 实现闹钟

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){ui->setupUi(this);//给语言播报者实例化空间speecher = new QTextToSpeech(this);//connect(ui->startBtn,&QPushButton::clicked,speecher,&Widget::my_slots);
}Widget::~Widget()
{delete ui;
}
//重写定时器的槽函数
void Widget::timerEvent(QTimerEvent *e)
{//判断哪一个定时器超时if(e->timerId() == id){//获取系统时间 QTimeQTime sys_time = QTime::currentTime();QString t = sys_time.toString("hh--mm--ss");//将系统时间放到xtTImeui->xtTime->setText(t);//居中显示ui->xtTime->setAlignment(Qt::AlignCenter);}QString t;if(t == ui->lineEdit->text()){ui->naozhong->setText("好好学习 天天向上");}
}void Widget::my_slots()//循环播报闹钟
{if(ui->xtTime->text() == ui->setLab->text()){for(int i=0;i<5;i++){speecher->say(ui->naozhong->text());}}else{}
}//启动按钮的槽函数
void Widget::on_startBtn_clicked()
{if(ui->startBtn->text() == "启动"){//启动一个定时器id=startTimer(1000);ui->startBtn->setText("关闭");}else{killTimer(id);ui->startBtn->setText("启动");}
}

相关文章:

  • 开源一套Trados Sdlxliff 对比工具
  • 以太坊==使用IDE remix.ethereum搭配metamask发布合约到测试网
  • 【C++】优先队列的使用及模拟实现
  • MetaGPT: Merging Large Language Models Using Model Exclusive Task Arithmetic
  • Linux rm命令由于要删的文件太多报-bash: /usr/bin/rm:参数列表过长,无法删除的解决办法
  • AI:音乐创作的未来还是毁灭的序曲?
  • 在自托管基础设施上使用 GitOps 部署 MinIO
  • 数据通信与网络(五)
  • Oracle day10
  • 【Linux系统】多线程
  • go的context总结
  • 开源项目壮大和创新
  • 颍川文明的传承
  • 微信小程序毕业设计-餐厅点餐系统项目开发实战(附源码+论文)
  • 设计模式——设计模式原则
  • 【个人向】《HTTP图解》阅后小结
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Django 博客开发教程 16 - 统计文章阅读量
  • Git学习与使用心得(1)—— 初始化
  • JS笔记四:作用域、变量(函数)提升
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • MD5加密原理解析及OC版原理实现
  • mysql 数据库四种事务隔离级别
  • ReactNativeweexDeviceOne对比
  • webpack入门学习手记(二)
  • 笨办法学C 练习34:动态数组
  • 二维平面内的碰撞检测【一】
  • 面试总结JavaScript篇
  • 你真的知道 == 和 equals 的区别吗?
  • 什么是Javascript函数节流?
  • 使用 @font-face
  • 使用Gradle第一次构建Java程序
  • 学习ES6 变量的解构赋值
  • 学习JavaScript数据结构与算法 — 树
  • 再谈express与koa的对比
  • 你对linux中grep命令知道多少?
  • Linux权限管理(week1_day5)--技术流ken
  • 说说我为什么看好Spring Cloud Alibaba
  • ​补​充​经​纬​恒​润​一​面​
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #14vue3生成表单并跳转到外部地址的方式
  • #Linux(Source Insight安装及工程建立)
  • #pragma once与条件编译
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (52)只出现一次的数字III
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (function(){})()的分步解析
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • .CSS-hover 的解释
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)