qt day4

闹钟:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //给播报员实例化空间
    speecher = new QTextToSpeech(this);

    ui->btn2->setEnabled(false);

    ui->textEdit->setText("三更灯火五更鸡\n"
                          "正是男儿读书时\n"
                          "黑发不知勤学早\n"
                          "白首方悔读书迟\n");

    //实例化一个定时器
    timer=new QTimer(this);
    //将该定时器的timeout信号连接到自定义的槽函数中
    //启动定时器
    timer->start(1000);//从此时起,该定时器会每隔一秒的事件发射一个timeout的信号
    connect(timer,&QTimer::timeout,this,&Widget::time_slot);
}

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


void Widget::on_btn1_clicked()
{
    ui->btn1->setEnabled(false);

    ui->btn2->setEnabled(true);
}

void Widget::on_btn2_clicked()
{

    ui->btn1->setEnabled(true);
//    //关闭定时器
//    timer->stop();
    ui->btn2->setEnabled(false);
    speecher->stop();

}

void Widget::time_slot()
{

    //调用Qtime的静态成员函数获取当前系统时间
    QTime sys_time=QTime::currentTime();


    //获取时分秒
//    int hour=sys_time.hour();
//    int minute=sys_time.minute();
//    int sec=sys_time.second();
    //将时间类对象调用函数转义字符
    QString t=sys_time.toString("hh:mm:ss");

    //将时间展示到ui的label中
    ui->time1->setText(t);

    ui->time1->setAlignment(Qt::AlignCenter);//标签文本对齐方式
    ui->time1->setFont(QFont("微软雅黑",20));

    QString set_time=ui->lineEdit->text();
    if(set_time==t&&ui->btn2->isEnabled()==true)
    {
    QString text=ui->textEdit->toPlainText();
    speecher->say(text);
    }
}

你可能感兴趣的:(qt,开发语言)