C++&QT---QT-day3

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
//需要在.pro文件第一行加 texttospeech

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->lineEdit->setPlaceholderText("时:分:秒");//设定框占位字符
    //ui->textEdit->setText("春眠不觉晓");
    ui->lineEdit->setAlignment(Qt::AlignCenter);//居中显示
    ui->textEdit->setAlignment(Qt::AlignCenter);
    speecher=new QTextToSpeech(this);//给播报员分配空间
}

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

void Widget:: timerEvent(QTimerEvent *e)
{
    if(e->timerId() == tId)
    {
        QTime sys_time = QTime::currentTime(); //获取当前系统时间
        QString s = sys_time.toString("hh:mm:ss");//把系统时间转换成字符串
        ui->lab_time->setText(s);//将系统时间放入标签中
        ui->lab_time->setAlignment(Qt::AlignCenter);//居中显示
        if(s == ui->lineEdit->text())//判断设定时间与系统时间是否匹配
        {
            speecher->say(ui->textEdit->toPlainText());
        }
    }
}

void Widget::on_startBtn_clicked()//定时器启动事件
{
    tId=startTimer(1000);
}

void Widget::on_stopBtn_clicked()//定时器关闭事件
{
    this->killTimer(tId);
}
cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>
#include <QTime>
#include <QTimer>
#include <QLabel>
#include <QLineEdit>
#include <QTextToSpeech>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void timerEvent(QTimerEvent *e);

private slots:
    void on_startBtn_clicked();

    void on_stopBtn_clicked();

private:
    Ui::Widget *ui;
    int tId;
    QTextToSpeech *speecher;
};
#endif // WIDGET_H
相关推荐
JAVA学习通7 分钟前
OJ竞赛平台----C端题目列表
java·开发语言·jvm·vue.js·elasticsearch
GHL2842710908 分钟前
用PDH库获取CPU使用率(源码)
c++
让我们一起加油好吗9 分钟前
【基础算法】多源 BFS
c++·算法·bfs·宽度优先·多源bfs
冷崖13 分钟前
定时器的学习(二)
linux·c++·学习
大胆飞猪17 分钟前
高并发内存池日志
c++·项目
想唱rap31 分钟前
C++ string类的使用
开发语言·c++·笔记·算法·新浪微博
胖咕噜的稞达鸭32 分钟前
C++中的父继子承(2)多继承菱形继承问题,多继承指针偏移,继承组合分析+高质量习题扫尾继承多态
c语言·开发语言·数据结构·c++·算法·链表·c#
JAVA学习通41 分钟前
基本功 | 一文讲清多线程和多线程同步
java·开发语言·多线程
啦啦91171444 分钟前
如何理解Java中的并发?
java·开发语言
api_180079054601 小时前
异步数据采集实践:用 Python/Node.js 构建高并发淘宝商品 API 调用引擎
大数据·开发语言·数据库·数据挖掘·node.js