当前位置: 首页 > news >正文

Qt事件处理机制

用qt实现简单闹钟

widget.h

#ifndef WIDGET_H
#define WIDGET_H
#include<QPushButton>
#include<QTextEdit>
#include<QLabel>
#include <QWidget>
#include<QMouseEvent>
#include<QPoint>
#include<QTime>
#include<QTimer>
#include<QFont>
#include<QLineEdit>
#include<QTextToSpeech>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECT
signals:void voice();
public:Widget(QWidget *parent = nullptr);~Widget();
public slots:void time_slot();void btn1_slot();void btn2_slot();void voice_slot();
private:Ui::Widget *ui;QLabel *lab1;QPushButton *btn1;QPushButton *btn2;QTextEdit *edit1;QLineEdit *ledit;QTimer t1;QFont font;QTextToSpeech *speecher;};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);lab1=new QLabel(this);ledit=new QLineEdit(this);btn1=new QPushButton(this);btn2=new QPushButton(this);edit1=new QTextEdit(this);btn2->setEnabled(false);speecher= new QTextToSpeech(this);QTime systime=QTime::currentTime();QString tm=systime.toString("hh:mm:ss");this->lab1->setText(tm);t1.start(1000);connect(&t1,&QTimer::timeout,this,&Widget::time_slot);connect(btn1,&QPushButton::clicked,this,&Widget::btn1_slot);connect(btn2,&QPushButton::clicked,this,&Widget::btn2_slot);connect(this,&Widget::voice,this,&Widget::voice_slot);
}Widget::~Widget()
{delete ui;
}
void Widget::time_slot(){lab1->move(80,30);lab1->resize(200,50);font.setPointSize(20);QTime systime=QTime::currentTime();QString tm=systime.toString("hh:mm:ss");this->lab1->setText(tm);lab1->setFont(font);lab1->setAlignment(Qt::AlignCenter);ledit->move(lab1->width()+lab1->x()+30,30);ledit->resize(300,40);ledit->setPlaceholderText("请输入xx时xx分xx秒");btn1->move(ledit->x(),ledit->y()+ledit->height()+10);btn1->setText("开始");btn1->resize(80,40);btn2->move(btn1->width()+btn1->x()+30,btn1->y());btn2->resize(btn1->size());btn2->setText(("结束"));edit1->move(80,btn1->y()+btn1->height()+10);edit1->resize(600,400);QString tms=lab1->text();QString msg=ledit->text();if(tms==msg){emit voice();}
}
void Widget::voice_slot(){QString msg1=edit1->toPlainText();speecher->say(msg1.toUtf8());}
void Widget::btn1_slot(){btn1->setEnabled(false);edit1->setEnabled(false);ledit->setEnabled(false);btn2->setEnabled(true);
}
void Widget::btn2_slot(){btn1->setEnabled(true);edit1->setEnabled(true);ledit->setEnabled(true);btn2->setEnabled(false);}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 记一次Hiveserver2连接异常的解决-腾讯云-emr
  • python进阶篇-day09-数据结构与算法(非线性结构与排序算法)
  • 数据结构(7.2_1)——顺序查找
  • 彻底理解Proxy和Reflect
  • SQL server 6.5升级到SQL server 2019
  • linux基础IO——动静态库——进程编址、进程执行、动态库加载
  • 品读 Java 经典巨著《Effective Java》90条编程法则,第1条:用静态工厂方法代替构造器
  • java:mybatisplus查询功能演示,包括模糊查询
  • 降维打击 华为赢麻了
  • 15.2 JDBC数据库编程2
  • 【H2O2|全栈】关于HTML(2)HTML基础(一)
  • 线程(Thread)
  • 从“N 号房”看Deepfake乱象,如何证明“我”不是我?
  • C++之打造my vector篇
  • 【H2O2|全栈】关于HTML(1)认识HTML
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • C++入门教程(10):for 语句
  • ES6核心特性
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java编程基础24——递归练习
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • js如何打印object对象
  • linux安装openssl、swoole等扩展的具体步骤
  • PHP 的 SAPI 是个什么东西
  • Redux系列x:源码分析
  • SQLServer之索引简介
  • 阿里研究院入选中国企业智库系统影响力榜
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 高程读书笔记 第六章 面向对象程序设计
  • 如何学习JavaEE,项目又该如何做?
  • 实战|智能家居行业移动应用性能分析
  • 硬币翻转问题,区间操作
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 进程与线程(三)——进程/线程间通信
  • 如何用纯 CSS 创作一个货车 loader
  • #70结构体案例1(导师,学生,成绩)
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (C#)获取字符编码的类
  • (C语言)逆序输出字符串
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (NSDate) 时间 (time )比较
  • (ZT)一个美国文科博士的YardLife
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (转)原始图像数据和PDF中的图像数据
  • (转载)从 Java 代码到 Java 堆
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET Micro Framework初体验
  • .net 调用海康SDK以及常见的坑解释
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .Net语言中的StringBuilder:入门到精通