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.思维导图

相关推荐
gopher95116 分钟前
go语言 数组和切片
开发语言·golang
ymchuangke6 分钟前
线性规划------ + 案例 + Python源码求解(见文中)
开发语言·python
gopher95118 分钟前
go语言Map详解
开发语言·golang
Python私教11 分钟前
Go语言现代web开发15 Mutex 互斥锁
开发语言·前端·golang
小电玩29 分钟前
JAVA SE8
java·开发语言
小丁爱养花1 小时前
记忆化搜索专题——算法简介&力扣实战应用
java·开发语言·算法·leetcode·深度优先
爱上语文1 小时前
Springboot三层架构
java·开发语言·spring boot·spring·架构
弘毅_Hao1 小时前
Qt clicked()、clicked(bool)、toggled(bool)信号的区别和联系
qt·按钮点击信号
Crossoads1 小时前
【数据结构】排序算法---快速排序
c语言·开发语言·数据结构·算法·排序算法
6230_1 小时前
git使用“保姆级”教程2——初始化及工作机制解释
开发语言·前端·笔记·git·html·学习方法·改行学it