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

定时器事件

	//设置多少毫秒调用一次 1s=1000timerId = 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=1000timerId = 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();}
}

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

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

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

相关文章

IDEA中的快捷键大全--超详细

目录 一、通用类型 1.1 图示 1.2 表格化 二、编写速度提升 2.1 图示 2.1.1 表格化 2.2 图示 2.2.1 表格化: 三、类结构,查找和查看源码 3.1 图示 3.2 表格化 四、查找,替换和关闭 4.1图示 4.2 表格化 五、调整格式 5.1 图示 5.2 表格化 六、快捷键的自主定义…

【C】数组(array)

数组(array) 数组的概念 数组是一组相同类型元素的集合 数组中存放的是1个或者多个数据&#xff0c;但是数组元素个数不能为0数组中存放的多个数据&#xff0c;类型是相同的 数组分为一维数组和多维数组&#xff0c;多维数组一般比较多见的是二维数组 一维数组的创建和初始…

递归神经网络解释(RNN)

Recurrent Neural Network (RNN) 如今,不同的机器学习技术用于处理不同类型的数据。最难处理和预测的数据类型之一是顺序数据。顺序数据与其他类型的数据不同,因为虽然可以假设典型数据集的所有特征都是与顺序无关的,但不能假设顺序数据集是无关的。为了处理这种类型的数据…

Kibana可视化Dashboard如何基于字段是否包含某关键词进行过滤

kinana是一个功能强大、可对Elasticsearch数据进行可视化的开源工具。 我们在dashboard创建可视化时&#xff0c;有时需要将某个index里数据的某个字段根据是否包含某些特定关键词进行过滤&#xff0c;这个时候就可以用到lens里的filter功能很方便地进行操作。 如上图所示&…

【笔记】【YOLOv10图像识别】自动识别图片、视频、摄像头、电脑桌面中的花朵学习踩坑

&#xff08;一&#xff09;启动 创建环境python3.9 打开此环境终端 &#xff08;后面的语句操作几乎都在这个终端执行&#xff09; 输入up主提供的语句&#xff1a;pip install -r requirements.txt 1.下载pytorch网络连接超时 pytorch网址&#xff1a; Start Locally | P…

centos系列图形化 VNC server配置,及VNC viewer连接,2024年亲测有效

centos系列图形化 VNC server配置&#xff0c;及VNC viewer连接 0.VNC服务介绍 VNC英文全称为Virtual Network Computing&#xff0c;可以位操作系统提供图形接口连接方式&#xff0c;简单的来说就是一款桌面共享应用&#xff0c;类似于qq的远程连接。该服务是基于C/S模型的。…

【STM32-HAL库】STM32F系列新建工程并点灯教程(小白向)

本帖是STM32HAL库系列新建工程系列合集 stm32-HAL库cubeMX新建工程教程&#xff08;以F103C8T6为例&#xff09;https://blog.csdn.net/qq_39150957/article/details/136637881?fromshareblogdetail&sharetypeblogdetail&sharerId136637881&sharereferPC&sha…

uniapp使用html2canvas时,页面内的image元素模糊

不废话很简单只需要将image改成img就行 改之前 改之后 原因可能是因为uniapp里面的image标签做了某种处理

[已解决]DockerTarBuilder永久解决镜像docker拉取异常问题

前阵子发现阿里云的docker加速镜像失效了&#xff08;甚至连nginx都拉取不了&#xff09;&#xff0c;重新换了并且加多了网络上比较常用的dokcer加速源&#xff0c;可以解决一部分问题&#xff0c;但仍然有一些镜像的某个版本或一些比较冷的镜像就是拉取不了&#xff0c;原因未…

Spring Security 基础配置详解(附Demo)

目录 前言1. 基本知识2. Demo3. 实战 前言 基本的Java知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 HttpSecurity 是 Spri…

51单片机快速入门之 LCD1602 液晶显示屏2024/10/19

51单片机快速入门之 LCD1602 液晶显示屏 Proteus 电路图 : 74HC595 拓展电路可以不用,给 p0-p17 添加上拉电阻也可以!,我这里是方便读取和节省电阻线路 (因为之前不知道 在没有明确循环的情况下&#xff0c;Keil编译器可能会在main()中自动添加类似以下的汇编代码&#xff1a…

ChatGPT Plus 升级全攻略

ChatGPT Plus 升级全攻略 最近有很多人想知道如何顺利升级到 ChatGPT Plus。这里有详细步骤,确保你不会错过任何环节。 第一步:登录 OpenAI 首先,你需要去 chat.openai.com。 然后,点击“登录”,输入你的邮箱和密码。 接下来,确保你输入的信息是正确的。 第二步:点击“升级…

HttpURLConnection构造请求体传文件

HttpURLConnection构造请求体传文件 在Java中&#xff0c;使用HttpURLConnection构造请求体传输文件&#xff0c;你需要做以下几步&#xff1a; 1、创建URL对象指向你想要请求的资源。 2、通过URL打开连接&#xff0c;转换为HttpURLConnection实例。 3、设置请求方法为POST。 …

软件测试工程师:如何写出好的测试用例?

软件测试用例(Test Case)是软件测试过程中的一种详细文档或描述&#xff0c;用于描述在特定条件下&#xff0c;对软件系统或组件进行测试的步骤、输入数据、预期输出和预期行为。编写高质量的测试用例是确保软件质量的关键步骤之一。以下是一些编写优秀测试用例的建议&#xff…

StarRocks产品简介

StarRocks概念 StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理&#xff0c;就可以用 StarRocks 来支持多种数据分析场景的极速分析。 StarRocks架构 Star…

使用Arcgis批量自动出图

操作方法如下&#xff1a; 1 2 3 4 5 6 7 设置好选项&#xff0c;开始打印。 8 生成pdf。 第一步&#xff1a;shp放到数据库中&#xff0c;标注转注记&#xff0c;然后编辑注记&#xff0c;符号样式设置好。准备出图&#xff1a;&#xff08;转注记时候尽量压盖监测等选最…

MXO44-2410数字示波器

MXO44-2410数字示波器 R&SMXO 4 系列是新一代示波器的首款产品&#xff0c;在性能和价值方面均表现出色。这些仪器提供十年一遇的工程突破&#xff0c;以加速洞察。 它们具有世界上最快的 450 万波形/秒的实时更新速率&#xff0c;这意味着工程师可以看到比任何其他仪器更…

李宏毅机器学习2022-HW7-BERT-Question Answering

文章目录 TaskBaselineMediumStrongBoss Code Link Task HW7的任务是通过BERT完成Question Answering。 数据预处理流程梳理 数据解压后包含3个json文件&#xff1a;hw7_train.json, hw7_dev.json, hw7_test.json。 DRCD: 台達閱讀理解資料集 Delta Reading Comprehension …

react 中的hooks中的useState

(1). State Hook让函数组件也可以有state状态, 并进行状态数据的读写操作 (2). 语法: const [xxx, setXxx] React.useState(initValue) (3). useState()说明:参数: 第一次初始化指定的值在内部作缓存返回值: 包含2个元素的数组, 第1个为内部当前状态值, 第2个为更新状态值的…

jmeter用csv data set config做参数化1

在jmeter中&#xff0c;csv data set config的作用非常强大&#xff0c;用它来做批量测试和参数化非常好用。 csv data set config的常用配置项如下&#xff1a; Variable Names处&#xff0c;写上源文件中的参数名&#xff0c;用于后续接口发送请求时引用 Ignore first line…