0618_QT4

news2024/7/2 3:26:01

练习:

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

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

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

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

3> 使用定时器事件 实现闹钟

main.c:

#include "widget.h"
#include "Seon.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    Seon s;
    QObject::connect(&w,&Widget::signal,&s,&Seon::my_slots);

    return a.exec();
}

seco.h:

#ifndef SEON_H
#define SEON_H

#include <QWidget>
#include<QTimerEvent> //定时器事件类
#include<QTime> //时间类
#include <QTextToSpeech>
#include <QDebug>
namespace Ui {
class Seon;
}

class Seon : public QWidget
{
    Q_OBJECT

public:
    explicit Seon(QWidget *parent = nullptr);
    ~Seon();
    void timerEvent(QTimerEvent *e);
signals:
    void signal_time();
public slots:
    void my_slots();
    void my_slots_time();
private slots:
    void on_pushButton_clicked();

private:
    Ui::Seon *ui;
    QTextToSpeech speech;
    int sid;
    int haha;
};

#endif // SEON_H

Widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMessageBox>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_pushButton_2_clicked();

    void on_pushButton_3_clicked();

    void on_pushButton_clicked();

    void on_pushButton_4_clicked();

signals:
    void signal();
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

seco.c:

#include "seon.h"
#include "ui_seon.h"

Seon::Seon(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Seon)
{
    ui->setupUi(this);
    connect(this,&Seon::signal_time,this,&Seon::my_slots_time);
}

Seon::~Seon()
{
    delete ui;
}

void Seon::timerEvent(QTimerEvent *e){
    if(e->timerId()==sid){
        QTime sys_time = QTime::currentTime();
        QString t = sys_time.toString("hh:mm:ss");
        ui->label_2->setText(t);
        ui->label_2->setAlignment(Qt::AlignCenter);
        qDebug() << t << ui->lineEdit->text();
        if(t==ui->lineEdit->text() && haha==1){
            emit signal_time();
        }
      }

}
void Seon::my_slots()
{
    this->show();
    sid=startTimer(1000);
}

void Seon::my_slots_time()
{
    QString textToSpeak = ui->label->text();
    qDebug() << textToSpeak;
    if (!textToSpeak.isEmpty()) {
        for (int a = 0; a < 5; ++a) {
            speech.say(textToSpeak);
        }
    } else {
        speech.say("No text to read");
    }
}


void Seon::on_pushButton_clicked()
{
    if(ui->pushButton->text()=="启动"){
        haha=1;
        ui->pushButton->setText("关闭");
    }else{
        haha=0;
        ui->pushButton->setText("启动");
    }
}

widget.c:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //去掉头部
    this->setWindowFlag(Qt::FramelessWindowHint);
    //去掉空白部分
    this->setAttribute(Qt::WA_TranslucentBackground);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_2_clicked()
{
    this->close();
}

void Widget::on_pushButton_3_clicked()
{
    this->showMinimized();
}

void Widget::on_pushButton_clicked()
{
    //判断密码是否正确
    if(ui->lineEdit->text()=="admin" && ui->lineEdit_2->text()=="123456"){
        //弹出对话框
        int ret = QMessageBox::information(this
                                           ,""
                                           ,"登陆成功"
                                           );
        //按下ok后操作
        if(ret==QMessageBox::Ok){
            this->close();
            emit Widget::signal();
        }
    }
    else{
        int ret = QMessageBox::information(this
                                 ,"Error"
                                 ,"密码或账户名错误,是否重新登录"
                                 ,QMessageBox::Yes | QMessageBox::No
                                 );

        if(ret==QMessageBox::Yes){
            ui->lineEdit_2->clear();
        }else{
            this->close();
        }
     }
}

void Widget::on_pushButton_4_clicked()
{
    //弹出问题框
    int ret = QMessageBox::question(this
                                       ,""
                                       ,"您确定要退出登录?"
                                       ,QMessageBox::Yes | QMessageBox::No
                                    );
    if(ret==QMessageBox::Yes){
        this->close();
    }else{
        QMessageBox::Close;
    }
}


思维导图:

 

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

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

相关文章

骁龙662_高通SM6115主要参数_高通模块方案定制

骁龙662&#xff08;SM6115&#xff09;采用了全新的44 Kryo 260 CPU架构&#xff0c;由四核Cortex-A73(高达2.0 GHz)和四核Cortex-A53(高达1.8 GHz)组成。这种架构的设计使得骁龙662在性能上相较于上一代产品有了显著的提升&#xff0c;为用户提供了更快的运行速度和更流畅的使…

【机器学习300问】123、什么是GRU?GRU网络的基本结构是怎样的?

在之前的文章中&#xff0c;我们谈到了标准RNN所面临的诸多困境&#xff0c;你也可以理解为RNN的缺点。其中最让人苦恼的就是梯度消失问题&#xff0c;正是由于梯度消失问题的存在&#xff0c;导致RNN无法获得上下文的长期依赖信息。那么就没有办法解决了吗&#xff1f;非也&am…

查看服务器端口,如何查看服务器端口是多少并修改

查看服务器端口并修改内容是一个涉及网络管理和系统配置的专业任务。以下是一个详细的步骤说明&#xff0c;用于查看和修改服务器端口。 一、查看服务器端口 1. 使用命令行工具&#xff1a; - 对于Linux或Unix系统&#xff0c;可以使用netstat、lsof或ss等命令来查看端口状…

深度神经网络——什么是降维?

引言 什么是降维&#xff1f; 降维是用于降低数据集维度的过程&#xff0c;采用许多特征并将它们表示为更少的特征。 例如&#xff0c;降维可用于将二十个特征的数据集减少到仅有几个特征。 降维通常用于无监督学习任务 降维是一个用于降低数据集维度的过程&#xff0c;采用许…

JupyterLab使用指南(四):JupyterLab的Magic 命令

1. 什么是 Magic 命令 Magic 命令是 JupyterLab 中的一类特殊命令&#xff0c;用于简化和增强代码的执行。它们以 % 或 %% 开头&#xff0c;可以进行各种操作&#xff0c;如时间测量、环境设置、文件操作等。Magic 命令分为行 Magic 命令和单元 Magic 命令两种。 行 Magic 命…

Transformer预测 | 基于Transformer的锂电池寿命预测(Pytorch,CALCE数据集)

文章目录 文章概述模型描述程序设计参考资料文章概述 Pytorch实现基于Transformer 的锂电池寿命预测,环境为pytorch 1.8.0,pandas 0.24.2 随着充放电次数的增加,锂电池的性能逐渐下降。电池的性能可以用容量来表示,故寿命预测 (RUL) 可以定义如下: SOH(t)=CtC0100%, 其中,…

远程访问电脑共享文件怎么设置

方法一&#xff1a;Microsoft远程桌面 1、在目标电脑上设置远程桌面&#xff1a; - 打开“开始”>“设置”>“系统”>“远程桌面”。 - 将“启用远程桌面”开关向右拖动以激活该功能。 - 记住计算机的账号和密码。 2、在手机上进行远程访问配置&#xff1a; - 从Googl…

数字孪生引领智慧校园建设新篇章

一、引言 在数字化浪潮的推动下&#xff0c;教育行业正经历着一场深刻的变革。智慧校园作为现代教育的新风向&#xff0c;通过整合先进的信息技术&#xff0c;正在逐步改变传统的教学、管理与服务模式。其中&#xff0c;数字孪生技术以其独特的优势&#xff0c;为智慧校园的建…

Day 26:2288. 价格减免

Leetcode 2288. 价格减免 句子 是由若干个单词组成的字符串&#xff0c;单词之间用单个空格分隔&#xff0c;其中每个单词可以包含数字、小写字母、和美元符号 ‘$’ 。如果单词的形式为美元符号后跟着一个非负实数&#xff0c;那么这个单词就表示一个 价格 。 例如 “$100”、…

【论文阅读】Multi-Camera Unified Pre-Training via 3D Scene Reconstruction

论文链接 代码链接 多摄像头三维感知已成为自动驾驶领域的一个重要研究领域&#xff0c;为基于激光雷达的解决方案提供了一种可行且具有成本效益的替代方案。具有成本效益的解决方案。现有的多摄像头算法主要依赖于单目 2D 预训练。然而&#xff0c;单目 2D 预训练忽略了多摄像…

API-操作元素内容

学习目标&#xff1a; 掌握操作元素内容 学习内容&#xff1a; 操作元素内容元素innerText属性元素innerHTML属性案例 操作元素内容&#xff1a; DOM对象都是根据标签生成的&#xff0c;所以操作标签&#xff0c;本质上就是操作DOM对象。就是操作对象使用的点语法。如果想要修…

python学习笔记-07

python内置函数 内置函数就是python自带的函数&#xff0c;不需要我们再去定义的&#xff0c;如print等直接使用即可&#xff0c;内置函数官方文档&#xff1a;官链。 1.数学运算 #数学运算&#xff1a; print(------abs()是绝对值函数------) a-1.1 print({}的绝对值是{}.fo…

高薪项目经理都在用的工具,你会几个?

甘特图、里程碑图、看版图、燃尽图、WBS、思维导图、流程图、鱼骨图、清单表、项目日历、关系矩阵、PERT图、决策树、状态表。这些工具&#xff0c;你会几个&#xff1f; 甘特图&#xff08;Gantt Chart&#xff09; 甘特图是一种条形图&#xff0c;用于展示项目任务的时间线&…

对SpringBoot入门案例的关键点

我们SpringBoot的入门案例中&#xff0c;即做了两个重要工作&#xff1a; 配置pom.xml文件写启动类 1.pom.xml依赖配置文件 ①帮助我们进行版本控制的父模块 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

泛微开发修炼之旅--20关于Ecology中如何查询正文文件的物理文件,并修改正文中的内容的解决方案

文章链接地址&#xff1a;20关于Ecology中如何查询正文文件的物理文件&#xff0c;并修改正文中的内容的解决方案

沃尔玛超市礼品卡有什么用?

最近端午节 有亲戚送了几张沃尔玛超市的卡做礼物过来 但是我们家附近的沃尔玛都好远&#xff0c;就算送货上门也不在配送范围内 由于种种原因导致这几张卡毫无用武之地&#xff0c;只能在家吃灰 最后多亏了收卡云&#xff0c;帮我解决了卡券闲置的问题&#xff0c;在收卡云上卖…

MySQL中的客户端选项(一)

mysql是一个简单的SQL shell&#xff0c;具有输入行编辑功能。它支持交互式和非交互式使用。交互使用时&#xff0c;查询结果以ASCII表格式显示。当非交互使用时&#xff08;例如&#xff0c;作为过滤器&#xff09;&#xff0c;结果以制表符分隔的格式显示。可以使用命令选项更…

Mybatis调用存储过程

在mysql数据库中创建一个存储过程 DELIMITER $$ CREATEPROCEDURE mybatisdemo1.pgetallusers(IN sid INT,IN eid INT)BEGINSELECT * FROM sb_users WHERE id>sid AND id<eid;END$$ DELIMITER ; 在Mapper接口里创建方法&#xff0c;和普通的查询数据方法没区别 在Mybati…

[Qt] Qt Creator 编码警告:warning:C4819

Qt项目使用VC&#xff08;2019 64bit&#xff09;编译器出现此错误。 warning&#xff1a;C4819&#xff1a;该文件包含不能在当前代码页&#xff08;936&#xff09;中表示的字符。请将该文件保存为Unicode格式以防止数据丢失。(可能这个警告内容也会在Qt Creator 中乱码) 如…

头歌资源库(10)拼数字

一、 问题描述 二、算法思想 初始化一个长度为10的数组count&#xff0c;用于记录卡片中每个数字的数量。 从1开始依次尝试拼出正整数&#xff0c;直到无法拼出下一个数为止。 对于每个尝试拼出的正整数&#xff0c;遍历其每一位的数字&#xff0c;检查该数字在count中是否还…