QT DAY4作业

1.

头代码

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>
#include <QTime>
#include <QTextToSpeech>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();
    void timerEvent(QTimerEvent *e);  //定时器执行函数

private slots:
    void on_pushButton_clicked();

private:
    Ui::Widget *ui;
    int id;  //定时器返回id
    int id2;
    QString s;
    QTextToSpeech *speecher;  //创建一个语音播报者

};

#endif // WIDGET_H

源代码

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    id = startTimer(1000);  //每隔1s执行功能代码
    speecher = new QTextToSpeech(this);
    this->setWindowFlag(Qt::FramelessWindowHint);
    this->setAttribute(Qt::WA_TranslucentBackground);
}

void Widget::timerEvent(QTimerEvent *e)
{
    //判断计时器id
    if(e->timerId() == id)
    {    //获取当前时间
        QTime sys_time = QTime::currentTime();

        s = sys_time.toString("hh:mm:ss");

        //将获取时间放入label中
        ui->sys_lab->setText(s);

        //设置居中显示
        ui->sys_lab->setAlignment(Qt::AlignCenter);
    }else if(e->timerId() == id2)
    {

        if(ui->lineEdit->text() == s)
          {
            for(int i=0;i<5;i++)
            {
               speecher->say(ui->label_2->text());
            }
            //关闭定时器
            killTimer(id2);
            ui->pushButton->setText("启动");
            ui->lineEdit->clear();
          }
    }
}

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


//启动按钮对应槽函数处理
void Widget::on_pushButton_clicked()
{
    if(ui->pushButton->text() == "启动")
    {
        //启动定时器
        id2 = startTimer(1000);

        ui->pushButton->setText("关闭");
    }else {
        //关闭定时器
        killTimer(id2);

        ui->pushButton->setText("启动");
    }
}

效果图

2.思维导图

相关推荐
众拾达人32 分钟前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.35 分钟前
Mybatis-Plus
java·开发语言
不良人天码星35 分钟前
lombok插件不生效
java·开发语言·intellij-idea
源码哥_博纳软云1 小时前
JAVA同城服务场馆门店预约系统支持H5小程序APP源码
java·开发语言·微信小程序·小程序·微信公众平台
学会沉淀。1 小时前
Docker学习
java·开发语言·学习
西猫雷婶2 小时前
python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
开发语言·python·opencv
kiiila2 小时前
【Qt】对象树(生命周期管理)和字符集(cout打印乱码问题)
开发语言·qt
小_太_阳2 小时前
Scala_【2】变量和数据类型
开发语言·后端·scala·intellij-idea
直裾2 小时前
scala借阅图书保存记录(三)
开发语言·后端·scala
唐 城2 小时前
curl 放弃对 Hyper Rust HTTP 后端的支持
开发语言·http·rust