Qt事件处理机制

ops/2025/1/15 21:01:28/

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);}


http://www.ppmy.cn/ops/111253.html

相关文章

NASA数据集:ASTER L2 地表辐射率 VNIR 和 SWIR V003

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ASTER L2 地表辐射率 VNIR 和 SWIR V003 简介 ASTER 地表辐照度可见近红外和短波红外(AST_09)是一个多文件产品(https://lpdaac.usgs.gov/documents/996/ASTER_Earthdata_Search_Order_Instruct…

GlusterFS分布式存储

目录 一、GlusterFS分布式存储概述 1、GFS概念 2、GFS特点 3、GFS术语 4、GFS架构 5、GFS工作流程 6、GlusterFs的卷类型 6.1、 分布式卷&#xff08;Distributed Volume&#xff09; 6.2、条带卷&#xff08;Striped Volume&#xff09; 6.3、复制卷&#xff08;Rep…

laravel 11 区分多模块的token

数据表&#xff1a;用户表&#xff08;users&#xff09;、管理员表&#xff08;admin_user&#xff09;&#xff0c; 配置bootstrap/app.php guards > [web > [driver > session,provider > admin_users,],home > [driver > sanctum,provider > users,]…

android os 多用户介绍

AOSP (Android Open Source Project) 中的 multi-user 支持允许设备上存在多个用户账户&#xff0c;每个用户都有自己的环境、应用和数据。这种特性对于平板电脑或家庭娱乐设备尤其有用&#xff0c;因为它允许多个家庭成员或朋友共享同一设备而不互相干扰。 下面是一些与 AOSP…

前端网络请求库:Axios

目录 1. 网络请求的基本概念 1.1 网络请求的基础HTTP协议 1.2 HTTP工作原理 1.3 TCP连接 1.31 建立TCP连接 1.31 关闭TCP连接 1.4 HTTP的请求方法 1.5 HTTP的响应状态码分类 1.6. 前端网络请求方式 2. Axios在在vue项目中的使用 2.1安装与使用 2.2 Axios使用HTTP请求…

erlang学习: Mnesia Erlang数据库2

Mnesia数据库增加与查询学习 -module(test_mnesia).-record(shop, {item, quantity, cost}). -record(cost, {name, price}). -record(design, {info, plan}). %% API -export([insert/3,select/1,start/0]). start() ->mnesia:start().insert(Name, Quantity, Cost) ->…

QT 中使用QXlsx 读写文件

PC 工具中需要操作xlsx格式的数据&#xff0c;前面使用的是QAxObject&#xff0c;需要一些设置&#xff0c;还要安装office的控件或者wps的控件&#xff0c;在一些电脑上面有的时候还会有异常&#xff0c;后面发现一个好像的开源库QXls&#xff0c;发现读写的速度比以前快&…

在Flask中实现跨域请求(CORS)

在Flask中实现跨域请求&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;主要涉及到对Flask应用的配置&#xff0c;以允许来自不同源的请求访问服务器上的资源。以下是在Flask中实现CORS的详细步骤和方法&#xff1a; 一、理解CORS CORS是一种机制&…