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

相关推荐
keykey6.14 小时前
逻辑回归:从回归到分类
开发语言·人工智能·机器学习
喵星人工作室14 小时前
C++火影忍者1.1.8
开发语言·c++·游戏
shchojj14 小时前
ChatGPT Prompt Engineering for Developers - Expanding
开发语言·python·prompt
凡人叶枫14 小时前
Effective C++ 条款26:尽可能延后变量定义式的出现时间
linux·开发语言·c++·effective c++
problc14 小时前
用 JavaScript 打开中国的版式文档:@sharp9/ofdjs 诞生记
开发语言·javascript·ecmascript
devilnumber21 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
asdfg12589631 天前
JavaBean是什么?怎么理解?有什么用途?
java·开发语言
dsyyyyy11011 天前
JavaScript变量
开发语言·javascript·ecmascript
z落落1 天前
C#WinForm 窗体切换与窗体传值(登录跳转案例)+WinForm 窗体传值(从上往下传、从下往上传)
开发语言·windows·c#
allway21 天前
How to Echo Multiline to a File in Bash [3 Methods]
开发语言·chrome·bash