Qt键盘按下事件和定时器事件及事件的接收和忽略

定时器事件

	//设置多少毫秒调用一次 1s=1000
	timerId = this->startTimer(1000);

	timerId2 = this->startTimer(500);
void MyWidget::timerEvent(QTimerEvent* t)
{
	static int sec = 0;
	//通过判断当前ID来实现不同定时器的调用时间
	if(t->timerId() == this->timerId){
	
	//隔一秒调用
	QString text = QString("<center><h1>time out:%1</center></h1>").arg(sec++);
	//鼠标进入事件时这个需要注销否则进入提示会被覆盖
	//this->setText(text);
	ui.label->setText(text);

	if (sec == 5) {
		//停止闹钟
		this->killTimer(timerId);
	}

	}else if(t->timerId() == this->timerId2){
	//隔0.5秒调用
	QString text = QString("<center><h1>time out:%1</center></h1>").arg(sec++);
	ui.label_2->setText(text);

	if (sec == 30) {
		//停止闹钟
		this->killTimer(timerId2);
	}
	}
}

在这里插入图片描述

键盘按下事件

void MyWidget::keyPressEvent(QKeyEvent *e)
{
	//打印的是ASCII
	//qDebug() << e->key();
	//这样是正常的
	qDebug() << (char)e->key();
}

在这里插入图片描述
左键按下按钮由当前类处理,右键按下事件交给父组件处理
在这里插入图片描述
全部代码
MyButton

#include "MyButton.h"

MyButton::MyButton(QWidget *parent)
	: QPushButton(parent)
{}

MyButton::~MyButton()
{}

void MyButton::mousePressEvent(QMouseEvent * ev)
{
	//如果是左键按下,接收了按下事件,就不会往下传就不好触发mywidget的cliked信号
	if (ev->button() == Qt::LeftButton) {
		qDebug() << "按钮被左键按下";
		//事件接收后就会往下传递
		// 一般在closeevent关闭事件使用
		//ev->ignore();//忽略,事件继续往下传递,传递给父组件,比如这个类在mywidget的pushbutton提升,mywidget就是父组件
	
	}
	else
	{
		//如果是右键按下不做处理
		QPushButton::mousePressEvent(ev);
		//事件的忽略,事件继续往下传递
	}
	//往下传递而触发父类发射cliked信号触发mywidget连接槽函数
	//QPushButton::mousePressEvent(ev);
}

MyWidget

#pragma execution_character_set("utf-8")
#include "MyWidget.h"
#include <qdebug.h>

MyWidget::MyWidget(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	//设置多少毫秒调用一次 1s=1000
	timerId = this->startTimer(1000);

	timerId2 = this->startTimer(500);

	connect(ui.pushButton,&QPushButton::clicked,
		[=]() {
			qDebug() << "按钮被按下";
		}
	);
}

MyWidget::~MyWidget()
{}

void MyWidget::keyPressEvent(QKeyEvent *e)
{
	//打印的是ASCII
	//qDebug() << e->key();
	//这样是正常的
	qDebug() << (char)e->key();
}

void MyWidget::timerEvent(QTimerEvent* t)
{
	static int sec = 0;
	//通过判断当前ID来实现不同定时器的调用时间
	if(t->timerId() == this->timerId){
	
	//隔一秒调用
	QString text = QString("<center><h1>time out:%1</center></h1>").arg(sec++);
	//鼠标进入事件时这个需要注销否则进入提示会被覆盖
	//this->setText(text);
	ui.label->setText(text);

	if (sec == 5) {
		//停止闹钟
		this->killTimer(timerId);
	}

	}else if(t->timerId() == this->timerId2){
	//隔0.5秒调用
	QString text = QString("<center><h1>time out:%1</center></h1>").arg(sec++);
	ui.label_2->setText(text);

	if (sec == 30) {
		//停止闹钟
		this->killTimer(timerId2);
	}
	}

}

void MyWidget::mousePressEvent(QMouseEvent* ev)
{
	qDebug() <<"MyWidget::mousePressEvent被触发";
}

//关闭事件
void MyWidget::closeEvent(QCloseEvent* ev)
{
	int ret = QMessageBox::question(this,"question","是否关闭窗口");
	if (ret == QMessageBox::Yes) {
		//关闭窗口
		//处理关闭窗口事件,接收事件,事件就不会在往下传递
		ev->accept();
	}
	else
	{
	//不关闭窗口
	//忽略事件,事件继续给父组件传递
		ev->ignore();
	}
}

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AtCoder Beginner Contest 375 A-E 题解

我的老师让我先做最后再交&#xff0c;看正确率&#xff08;即以OI赛制打abc&#xff09; 所以我用的小号&#xff08;… …&#xff09; C 卡了老半天才出来&#xff0c;我把题读错了 难度&#xff1a; A. Seats 题意 给你一个字符串 S S S&#xff0c;仅包含 . 和 #&…

kubernets(二)

集群操作 查看集群信息 kubectl get查看各组件信息 格式&#xff1a;kubectl get 资源类型 【资源名】 【选项】 events #查看集群中的所有日志信息 -o wide # 显示资源详细信息&#xff0c;包括节点、地址... -o yaml/json #将当前资源对象输出至 yaml/json 格式文…

2024.10.20 进制转换 删除根节点为x的整个子树

进制转换 十进制转换为任意进制 #include <stdio.h> int main(){char res [32] {0};int num;int index;scanf("%d %d",&num,&index);char table[] "0123456789ABCDEF";int i 0;if(num0) res[0] 0;else if(num!0){while(num>0){res[i…

Java重修笔记 UDP 网络通信

UDP 网络通信原理 1. 类 DatagramSocket 和 DatagramPacket [数据包/数据报] 实现了基于 UDP协议网络程序。 2. UDP 数据报通过数据报套接字 DatagramSocket 发送和接收&#xff0c;系统不保证UDP数据报一定能够安全送到目的地&#xff0c;也不能确定什么时候可以抵达&#…

【机器学习】决策树算法

目录 一、决策树算法的基本原理 二、决策树算法的关键概念 三、决策树算法的应用场景 四、决策树算法的优化策略 五、代码实现 代码解释&#xff1a; 在机器学习领域&#xff0c;决策树算法是一种简单直观且易于理解的分类和回归方法。它通过学习数据特征和决策规则&#…

电力系统IEC-101报文主要常用详解

文章目录 1️⃣ IEC-1011.1 前言1.2 101规约简述1.3 固定帧格式1.4 可变帧格式1.5 ASDU1.5.1 常见类型标识1.5.2 常见结构限定词1.5.3 常见传送原因1.5.4 信息体地址 1.6 常用功能报文1.6.1 初始化链路报文1.6.2 总召报文1.6.3 复位进程1.8.4 对时1.8.4.1时钟读取1.8.4.2时钟写…

R语言医学数据分析实践-R编程环境的搭建

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 R语言对编程环境的要求不高&#xff0c;可以在多种操作系统平台上…

数据结构——顺序表的基本操作

前言 介绍 &#x1f343;数据结构专区&#xff1a;数据结构 参考 该部分知识参考于《数据结构&#xff08;C语言版 第2版&#xff09;》24~28页 补充 此处的顺序表创建是课本中采用了定义方法为SqList Q来创建&#xff0c;并没有使用顺序表指针的方法&#xff0c;具体两个…

【Linux系列】查询nginx相关的进程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

推荐IDE中实用AI编程插件,目前无限次使用

插件介绍 一款字节跳动推出的“基于豆包大模型的智能开发工具” 以vscode介绍【pycharm等都可以啊】&#xff0c;这个插件提供智能补全、智能预测、智能问答等能力&#xff0c;节省开发时间 直接在IDE中使用&#xff0c;就不用在网页中来回切换了 感觉还可以&#xff0c;响应速…

欧盟 RED 网络安全法规 EN 18031

目录 1. &#x1f4c2; EN 18031 1.1 背景 1.2 专业术语 1.3 覆盖产品范围 1.4 EN 18031标准主要评估内容&#xff1a; 1.5 EN 18031标准主要评估项目&#xff1a; 1.6 EN 18031 与 ETSI EN 303 645 的主要差异 1.7 RED 网络安全法规解读研讨会 2. &#x1f531; EN 1…

LabVIEW示波器通信及应用

基于LabVIEW平台开发的罗德与施瓦茨示波器通信与应用系统实现了示波器的远程控制及波形数据的实时分析&#xff0c;通过TCP/IP或USB接口与计算机通信&#xff0c;利用VISA技术进行指令传输&#xff0c;从而实现高效的数据采集与处理功能。 项目背景 随着现代电子测试需求的日益…

【解决Docker无剩余存储磁盘空间问题】

【解决Docker无剩余存储磁盘空间问题】 目录 【解决Docker无剩余存储磁盘空间问题】一、问题概述二、问题原因三、解决方案1、方案一&#xff1a;清除Docker磁盘空间2、方案二&#xff1a;更换Docker磁盘存储目录 一、问题概述 执行Docker build -t [镜像名] [源目录] 命令报错…

2.1 HTML5 - Canvas标签

文章目录 引言Canvas标签概述定义实例&#xff1a;创建画布 理解Canvas坐标系概述实例&#xff1a;获取Canvas坐标 获取Canvas环境上下文概述实例&#xff1a;获取Canvas上下文设置渐变色效果 结语 引言 大家好&#xff0c;今天我们要一起探索HTML5中一个非常有趣且强大的特性…

如何将本地 Node.js 服务部署到宝塔面板:完整的部署指南

文章简介&#xff1a; 将本地开发的 Node.js 项目部署到线上服务器是开发者常见的工作流程之一。在这篇文章中&#xff0c;我将详细介绍如何将本地的 Node.js 服务通过宝塔面板&#xff08;BT 面板&#xff09;上线。宝塔面板是一个强大的服务器管理工具&#xff0c;具有简洁的…

基于SSM党务政务服务热线管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;部门管理&#xff0c;办事信息管理&#xff0c;信息记录管理&#xff0c;系统管理 前台账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;部门&#xff0c;信息…

金融信创基金行业案例:某基金公司AD信创替代方案建设分享

缺失国产域控统一认证&#xff0c;导致业务信创升级受阻 某基金管理公司在办公场景拟建设信创 OA 系统、信创邮件系统以及信创服务器、桌面终端。但原有的 AD 域既无法接管新购的信创资产&#xff0c;亦不符合全栈信创建设要求。因此&#xff0c;该基金单位必须选择一套稳定可…

H-TCP 的效率和公平性

昨晚带安孩楼下玩耍&#xff0c;用手机 desmos 作了一组 response curve 置于双对数坐标系&#xff1a; 长肥管道的优化思路都很类似&#xff0c;cwnd 增长快一点&#xff1a; BIC TCP&#xff1a;二分查找逼近 capacity&#xff1b;CUBIC TCP&#xff1a;上凸曲线逼近 capa…

PHP爬虫:获取商品销量数据的利器

在电子商务的激烈竞争中&#xff0c;掌握商品销量数据是商家洞察市场动态、制定销售策略的关键。通过PHP爬虫技术&#xff0c;我们可以高效地获取这些数据&#xff0c;为商业决策提供支持。 PHP爬虫的优势 PHP作为一种流行的服务器端脚本语言&#xff0c;拥有跨平台运行、丰富…

2025年天津仁爱学院专升本动画化学工程与工艺专业对应专业限制

天津仁爱学院2025年高职升本科招生专业对应范围目录&#xff08;动画化学工程与工艺&#xff09; 专业名称按照教育部发布的《职业教育专业目录(2021年)(更新时间&#xff1a;2024年1月)》为准&#xff0c;按更新前专业名称录取的学生以下表中原专业名称相符可申报&#xff0c…