qt实现简单小闹钟

 效果展示:

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //调用定时器启动函数
    this->startTimer(1000);

    //获取日期
    QDateTime currentTime = QDateTime::currentDateTime();
    QString timeText = currentTime.toString("yyyy年MM月dd日 dddd");
    //把时间放入文本框
    ui->dateEdit->setText(timeText);

    //设置背景
    setAutoFillBackground(true);  //允许设置
    QPixmap pixmap = QPixmap(":/icon/4.jpg").scaled(this->size());

    QPalette palette(this->palette());
    palette.setBrush(QPalette::Background, QBrush(pixmap));
    this->setPalette(palette);
    //设置标题
    this->setWindowTitle("小小闹钟");
}
void Widget::timerEvent(QTimerEvent *)
{

    //1、获取系统时间
    sysTime = QTime::currentTime();
    //2、将时间类对象转换为字符串
   t = sysTime.toString("hh:mm:ss");
   QString tTemp=sysTime.toString("hh:mm");
   //此处用了中文版:输入闹钟时间无需切换英文输入法
   ui->lcdNumber->setDigitCount(8);//设置为显示8位

    //设置时钟的闪烁切换,每秒都在执行
    if(ok==true)
    {
        t[2]=':';
        t[5]=' ';
        ok=false;
    }else
    {
        t[2]=' ';
        t[5]=':';
        ok=true;
    }
    //lcd钟表显示时分秒
    ui->lcdNumber->display(t);
    alarm = ui->lineEdit->text();
    //判断闹钟时间到,开始播报计划事件
    if(alarm==tTemp)
    {
        speecher.say(ui->textEdit->toPlainText());
        //调用阅读者的读函数,将内容播报出去

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


void Widget::on_setbtn_clicked()
{
    //ui->lineEdit->clear();
    ui->setbtn->setEnabled(false);
    ui->lineEdit->setEnabled(false);
    ui->textEdit->setEnabled(false);
}

void Widget::on_cancelbtn_clicked()
{

    ui->setbtn->setEnabled(true);
    ui->lineEdit->setEnabled(true);
    ui->textEdit->setEnabled(true);
    ui->lineEdit->clear();
    ui->textEdit->clear();

}

头文件:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

#include <QTimerEvent>
#include <QTime>
#include <QTextToSpeech>
#include <QDebug>
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 *);
private slots:
    void on_setbtn_clicked();

    void on_cancelbtn_clicked();

private:
    Ui::Widget *ui;
    QTime sysTime;
    QString t;
    bool ok=true; //声明变量ok,用于判断闪烁
    QString alarm;
    QTextToSpeech speecher; //定义一个播报者
};
#endif // WIDGET_H

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值