QT-day4

1>
完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面
如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面
如果用户点击取消按钮,则弹出一个问题对话框,给出信息”您是否确定要退出登录?“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能
要求:(基于属性版、静态成员函数都使用)实现对话框的弹出
相关核心代码:

void Form::login_clicked_slot()
{
    if(ui->Account->text() == "123" && ui->Password->text() == "123"){
        QMessageBox msg(
                    QMessageBox::Information,
                    "信息对话框",
                    "登录成功",
                    QMessageBox::Ok,
                    this
                    );
        int ret = msg.exec();
        if(ret == QMessageBox::Ok){
            this->close();
            emit send_signal();
        }
    }else{
        int ret = QMessageBox::critical(
                    this,
                    "错误对话框",
                    "账号和密码不匹配",
                    QMessageBox::Yes | QMessageBox::No
                    );
        if(ret == QMessageBox::Yes){
            ui->Password->clear();
        }else{
            this->close();
        }
    }
}

void Form::on_quit_clicked()
{
    int ret = QMessageBox::question(
                this,
                "问题对话框",
                "您是否确定要退出登录?"
                );
    if(ret == QMessageBox::Yes){
        this->close();
    }
}

2> 使用定时器事件 实现闹钟
在这里插入图片描述

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    id1 = startTimer(1000);
}

void Widget::timerEvent(QTimerEvent *e)
{
    static int count = 0;
    if(e->timerId() == id1){
        QTime sys_time = QTime::currentTime();
        QString t = sys_time.toString();
        ui->SysTime->setText(t);
    }
    if(e->timerId() == id2){
        ui->Msg->setText("该起床啦\n");
        count++;
        id3 = startTimer(2000);
        killTimer(id2);
    }
    if(e->timerId() == id3){
        QString msg = ui->Msg->text();
        msg += "该起床啦\n";
        ui->Msg->setText("该起床啦\n");
        count++;
        if(count == 5){
            killTimer(id3);
            ui->Btn->setText("启动");
            count = 0;
        }
    }
}

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


void Widget::on_Btn_clicked()
{
    if(ui->Btn->text() == "启动"){
        ui->Btn->setText("关闭");

        QString sys_time = ui->SysTime->text();
        QStringList list1 = sys_time.split(":");
        QString h = list1.at(0);
        QString m = list1.at(1);
        QString s = list1.at(2);
        //qDebug() << h << " " << m << " " << s;
        int sys_h = h.toInt();
        int sys_m = m.toInt();
        int sys_s = s.toInt();
        int sys = sys_h*3600 + sys_m*60 + sys_s;

        QString tim_time = ui->Tim->text();
        QStringList list2 = tim_time.split(":");
        int tim_h = list2.at(0).toInt();
        int tim_m = list2.at(1).toInt();
        int tim_s = list2.at(2).toInt();
        int tim = tim_h*3600 + tim_m*60 + tim_s;

        id2 = startTimer((tim-sys)*1000);
    }else{
        ui->Btn->setText("启动");
        killTimer(id2);
        killTimer(id3);
    }
}
  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值