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

8.20Qt作业

运用定时器事件实现 闹钟项目

主要代码:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), spk(new QTextToSpeech(this))
{ui->setupUi(this);this->setWindowFlag(Qt::FramelessWindowHint);this->setAttribute(Qt::WA_TranslucentBackground);timer1 =new QTimer(this);connect(timer1,&QTimer::timeout,this,&Widget::timeout_slot);timer1->start(1000);tex="起床了,太阳晒屁股了\n";}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_2_clicked()
{qDebug() << "程序已退出";this->close();
}void Widget::on_pushButton_clicked()
{if(ui->pushButton->text()=="启动"){int msec;QTime cur_time=QTime::currentTime();QTime set_time=ui->timeEdit->time();ui->label_4->setText("倒计时!!!");if(cur_time<set_time){msec=cur_time.msecsTo(set_time);}else{msec=cur_time.msecsTo(set_time)+24*3600*1000;}id=startTimer(msec);ui->pushButton->setText("关闭");}else{//ui->label_4->clear();b=0;a=0;tex="起床了,太阳晒屁股了\n";ui->label_4->setText("闹钟!!!");killTimer(id);ui->pushButton->setText("启动");}
}
void Widget::timerEvent(QTimerEvent *e)
{if(e->timerId()==id){ui->label_4->setText(tex);spk->say(ui->label_4->text());killTimer(id);b=1;}
}
void Widget::timeout_slot()
{QTime s_time=QTime::currentTime();QString t = s_time.toString("hh : mm : ss");ui->label->setText(t);ui->label->setAlignment(Qt::AlignCenter);if(b==1){if(a<21){   a++;if(a%5==0){tex+="起床了,太阳晒屁股了\n";ui->label_4->setText(tex);spk->say("起床了,太阳晒屁股了\n");}}}
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{if(event->buttons()==Qt::LeftButton){this->move(event->globalPos()-p);}
}
void Widget::mousePressEvent(QMouseEvent *event)
{p=event->pos();
}

实现效果


http://www.mrgr.cn/news/2430.html

相关文章:

  • SEO之网站结构优化(十二-绝对路径和相对路径)
  • Java 的访问控制修饰符
  • 【区块链+商贸零售】NOCO 企业数字化社区 | FISCO BCOS应用案例
  • 【PB案例学习笔记】-33 PB连接Oracle数据库查询数据
  • 如何运用独特的产业运营体系打造一流的数字媒体产业园
  • 客车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型
  • 指针和引用的区别
  • MySQL常用方法速通
  • python下载b站视频
  • 大数据量实现滚动分页-vue3+element-plus实现方式
  • 后端Java秋招面试中的自我介绍需要说什么?
  • nginx核心配置示例
  • Go语言基础--switch
  • 第3章处理机调度与死锁
  • 树莓派开发笔记09-树莓派的UDP通信实验
  • 【人工智能】Transformers之Pipeline(十一):零样本图片分类(zero-shot-image-classification)
  • 内网拓扑可视化及管控技术
  • TypeScript学习笔记1---认识ts与js的异同、ts的所有数据类型详解
  • .Net插件开发开源框架
  • WPF学习(8) --Windows API函数的使用