#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
speech = new QTextToSpeech(this); //实例化播报员
//开始先关闭按钮2
ui->btn2->setDisabled(true);
//给定时器指针实例化空间
timer = new QTimer(this);
connect(timer,&QTimer::timeout,this,&Widget::on_timeout_slot);
timer->start(1000); //当启动定时器后,会每隔1000ms,自动发射timeout信号
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btn1_clicked()
{
//执行启动功能
//把文本框设置为不可以修改
ui->alarmtext->setDisabled(true);
ui->alarmtime->setDisabled(true);
//将按钮1设置为不可用
ui->btn1->setDisabled(true);
//将按钮2设置为可用
ui->btn2->setEnabled(true);
}
void Widget::on_btn2_clicked()
{
//执行关闭功能
//把文本框设置为可以修改
ui->alarmtext->setEnabled(true);
ui->alarmtime->setEnabled(true);
//将按钮2设置为不可用
ui->btn2->setDisabled(true);
//将按钮1设置为可用
ui->btn1->setEnabled(true);
}
//处理timeout信号对应的槽函数
void Widget::on_timeout_slot()
{
QTime t = QTime::currentTime(); //获取系统时间
t1 = t.toString("hh:mm:ss"); //将系统时间转换为字符串
ui->localtimeLab->setText(t1); //将时间设置到ui上
//判断闹钟时间是否与本地时间相等
if(t1 == ui->alarmtime->text())
{
speech->say(ui->alarmtext->toPlainText()); //播放文本上的内容
}
}
Qt实现一个闹钟
于 2023-04-28 17:22:00 首次发布
该代码段展示了一个Qt界面应用,使用Widget类、QTextToSpeech进行语音播报,以及QTimer来触发定时事件。当用户点击btn1,会启动一个定时器并在时间匹配时播放alarmtext中的文本。点击btn2则关闭闹钟功能,允许用户修改文本框内容。
摘要由CSDN通过智能技术生成