2023/4/7 使用QT做出一个闹钟

1.程序效果

 

 2.程序主题执行代码

 

#include "qtwork.h"
#include "ui_qtwork.h"

Qtwork::Qtwork(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::Qtwork)
{
    ui->setupUi(this);

    //设置纯净窗口
    this->setWindowFlag(Qt::FramelessWindowHint);

    //启动UI界面时发送一个start信号
    /**********************/
    //申请空间
    T_line1=new QTimer(this);
    //连接槽对应的槽函数,发送timeout信号
    connect(T_line1,&QTimer::timeout,this,&Qtwork::time_line1);
    //启动ui发送start

    /**********************/

    //初始化按钮状态
    ui->btn_1->setEnabled(true); //启动为真
    ui->btn_2->setEnabled(false); //取消为假
}

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

//将当前时间显示到UI界面中
void Qtwork::time_line1()
{
    //获取当前时间 QTime::currentTime
    QTime time=QTime::currentTime();
    //将时间转换为字符串 tostring
    QString time_s=time.toString();
    //显示在ui界面
    ui->line_1->setText(time_s);
    //获取闹钟时间
    QString s_line1,s_line2;
    s_line2=ui->line_2->text();
    //获取当前时间
    s_line1=ui->line_1->text();

    //时间比较
    if(s_line1==s_line2)//时间对等
    {
        //获取文本信息存储
        QString s_text =  ui->text1->toPlainText();
        //读出信息
        QTextToSpeech *speech=new QTextToSpeech(this);
//        while(flag==0)//用户不点取消一直读
//        {
        speech->say(s_text);
        QThread::sleep(1);
//        }
    }
}

//重写鼠标按下事件,获取鼠标到UI界面左上角的向量值
void Qtwork::mousePressEvent(QMouseEvent *event)
{
    //获取向量
    mypoint=event->globalPos() - this->frameGeometry().topLeft();
}

void Qtwork::mouseMoveEvent(QMouseEvent *event)
{

    this->move(event->globalPos()-mypoint);
}

//获取设定闹钟的时间,到时间播报提示信息
void Qtwork::on_btn_1_clicked()
{

    //启动按钮以后循环发送信号
    if(flag==1)
    {
    T_line1->start(1000);
    ui->btn_1->setEnabled(false);//控制启动按钮不可点击
    ui->btn_2->setEnabled(true); //改变取消按钮为真状态
    flag=0;
    }
}

//关闭闹钟
void Qtwork::on_btn_2_clicked()
{

    T_line1->stop();//关闭闹钟
    ui->btn_1->setEnabled(true);//控制启动按钮为真
    ui->btn_2->setEnabled(false); //改变取消按钮为假
    flag=1; //取消后不再循环读

}

//设置出字体谈话框
void Qtwork::on_btn_3_clicked()
{
    bool ok=false;   //返回用户是否返回字体
    QFont myFont=QFontDialog::getFont(&ok,QFont("幼圆"),this,"字体");

    //将选中的字体设置到文本内容
    if(ok)
    ui->text1->setCurrentFont(myFont);
}

//设置Text里字体的颜色
void Qtwork::on_btn_4_clicked()
{
    QColor mycolor= QColorDialog::getColor(Qt::white,this,"字体颜色");
    ui->text1->setTextColor(mycolor);//设置字体颜色
}

//设置Text里字体的背景
void Qtwork::on_btn_5_clicked()
{
    QColor mycolor= QColorDialog::getColor(Qt::white,this,"字体颜色");
    ui->text1->setTextBackgroundColor(mycolor);//设置字体颜色
}

//退出确认
void Qtwork::on_btn_6_clicked()
{
    //父组件,"窗口名",“提示信息”,按钮
    int ret=QMessageBox::critical(this,"退出","是否退出",QMessageBox::Yes|QMessageBox::No);
    if(ret==QMessageBox::Yes)
    {
        this->close();
    }
    else if(ret==QMessageBox::No)
    {}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值