Qt 简单闹钟

//wiget.h#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTime>   //时间类
#include <QTimer>  //定时器类
#include <QTextToSpeech>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void time_slot1();  //自定义处理timeout信号的槽函数void time_slot2();private slots:void on_startbtn_clicked();void on_stopbtn_clicked();private:Ui::Widget *ui;//定义一个定时器指针,基于类对象版本的定时器QTimer *timer;QTimer *timer_timeEdit;//定义一个播报员QTextToSpeech *speecher;int flag = 0;
};
#endif // WIDGET_H//main.cpp
#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}//widget.cpp#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//实例化定时器timer = new QTimer(this);//启动定时器timer->start(100);  //从此时起,该定时器会每隔1秒钟的时间发射一个timeout的信号//将该定时器的timeout信号连接到自定义的槽函数中connect(timer,&QTimer::timeout,this,&Widget::time_slot1);speecher = new QTextToSpeech(this);//设置定时行编辑器的格式ui->timeEdit->setAlignment(Qt::AlignCenter);//标签文本对齐方式 居中ui->timeEdit->setFont(QFont("微软雅黑",15));}Widget::~Widget()
{delete ui;
}
//自定义处理timeout信号的槽函数
void Widget::time_slot1()
{//调用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");//时间字符串t展示到ui界面的lab中ui->time_label->setText(t);ui->time_label->setAlignment(Qt::AlignCenter);//标签文本对齐方式 居中ui->time_label->setFont(QFont("微软雅黑",20));if(flag == 0){ui->timeEdit->setText(ui->time_label->text());flag = 1;}
}
//处理时间行编辑器的定时器的timeout信号
void Widget::time_slot2()
{if(ui->timeEdit->text() == ui->time_label->text()){speecher->say(ui->textEdit->toPlainText());}
}void Widget::on_startbtn_clicked()
{//启动后时间文本编辑器、文本编辑器和启动按钮将不可用ui->startbtn->setEnabled(false);ui->timeEdit->setEnabled(false);ui->textEdit->setEnabled(false);timer_timeEdit = new QTimer(this);timer->start(100);  //从此时起,该定时器会每隔1秒钟的时间发射一个timeout的信号connect(timer,&QTimer::timeout,this,&Widget::time_slot2);}void Widget::on_stopbtn_clicked()
{//停止后时间文本编辑器、文本编辑器和启动按钮可用ui->startbtn->setEnabled(true);ui->timeEdit->setEnabled(true);ui->textEdit->setEnabled(true);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/96945.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Netty源码NioEventLoop解析

带着问题源码 Netty 的 NioEventLoop 是如何实现的&#xff1f;它为什么能够保证 Channel 的操作是线程安全的&#xff1f;Netty 如何解决 JDK epoll 空轮询 Bug&#xff1f;NioEventLoop 是如何实现无锁化的&#xff1f; 一、作用与设计原理 Netty的NioEventLoop并不是一个存…

macOS Sonoma 14beta 7(23A5337a)更新发布,附黑/白苹果系统镜像

系统介绍&#xff08;镜像请前往黑果魏叔官网下载&#xff09; 黑果魏叔8 月 31 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 14 开发者预览版 Beta 7 更新&#xff08;内部版本号&#xff1a;23A5337a&#xff09;&#xff0c;本次更新距离上次发布隔了 8 天。 …

一些自己整理的工具实用参数

工具实用参数 sqlmap -u: 指定需要测试的目标URL&#xff08;格式&#xff1a;http://www.example.com/test.php?id1&#xff09; --cookie: 设置需要发送的 HTTP Cookie&#xff0c;例如&#xff1a;--cookie"sid123456;PHPSESSID654321" --threads&#xff1a;…

【校招VIP】产品分析之活动策划宣传

考点介绍&#xff1a; 产品的上线运营是非常重要的。应该来说好的产品都是运营出来的&#xff0c;在一运营过程中难免会依靠策划活动来提高产品知名度、用户数。用户粘度等等指标一&#xff0c;如何策划一个成功的活动就显得非常重要。 产品分析之活动策划宣传-相关题目及解析…

基础算法-递推算法-学习

现象&#xff1a; 基础算法-递推算法-学习 方法&#xff1a; 这就是一种递推的算法思想。递推思想的核心就是从已知条件出发&#xff0c;逐步推算出问题的解 最常见案例&#xff1a; 一&#xff1a;正向递推案例&#xff1a; 弹力球回弹问题&#xff1a; * 弹力球从100米高…

java+ssm+mysql电费管理系统

项目介绍&#xff1a; 使用javassmmysql开发的用户电费管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理、用户管理、用电管理&#xff08;用电记录、缴费提醒&#xff09;、电费…

模拟电子技术基础学习笔记二 杂质半导体

通过扩散工艺&#xff0c;在本征半导体中掺入少量合适的杂质元素&#xff0c;可得到杂质半导体。 按掺入的杂质元素不同&#xff0c;可形成N型半导体和P型半导体 控制掺入杂质元素的浓度&#xff0c;可以控制杂质半导体的导电性能。 一、N型半导体&#xff08;negative Semic…

SNP BLUEFIELD助力ABM集团S/4HANA数字转型

ABM的愿景是成为一家在矿业资源、矿业服务和矿业基础设施方面进行战略投资的公司。在业务发展中&#xff0c;ABM努力实现各业务部门之间的整合和协同&#xff0c;以满足矿业业务供应链活动的需求。 挑战&#xff1a;营造敏捷数据环境以适应发展需求 2020年&#xff0c;ABM集团…

TP6 开启关闭debug

config 不起作用&#xff0c;还得来这里改&#xff1a; 或者单个方法里加&#xff1a; $this->app->debug(true); //临时错误调试

【图解RabbitMQ-1】图解消息队列是什么玩意儿?它的应用场景有哪些?

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

【Apollo学习笔记】——规划模块TASK之SPEED_HEURISTIC_OPTIMIZER

文章目录 前言SPEED_BOUNDS_PRIORI_DECIDER功能简介SPEED_BOUNDS_PRIORI_DECIDER相关配置SPEED_BOUNDS_PRIORI_DECIDER流程1. 对路程和时间进行采样以及速度限制2. 设计状态转移方程&#xff08;cost计算&#xff09;2.0 CalculateCostAt代价计算2.1 GetObstacleCost障碍物cost…

yum 、rpm、yumdownloader、repotrack 学习笔记

1 Linux 包管理器概述 rpm的使用&#xff1a; rpm -ivh filename.rpm#这列出该packageName&#xff08;包名&#xff09;安装的所有文件列表。 rpm -ql packageName #查询已安装的该packageName的详细信息&#xff0c;包括版本、发布日期等。 rpm -qi packageName #列出该pac…