QT学习笔记(七):定时器事件的3种常用使用方式

QT学习笔记(七):定时器事件的2种常用使用方式

Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类。
其中QTimer 类来实现定时器使用的更多,它提供了更高层次的编程接口,比如可以使用信号和槽,还可以设置只运行一次的定时器。

1.使用QObject类提供的定时器

头文件添加:

private:int id1, id2, id3;
protected:void timerEvent(QTimerEvent *event); //声明定时器时间

源文件添加:

//  构造函数id1 = startTimer(1000);    // 开启一个1秒定时器,返回其IDid2 = startTimer(1500);id3 = startTimer(2200);void Widget::timerEvent(QTimerEvent *event)
{QTime time = QTime::currentTime();      	// 获取当前时间QString text = time.toString("hh:mm");  	// 转换为字符串if((time.second() % 2) == 0)text[2]=' '; 							// 每隔一秒就将“:”显示为空格ui->lcdNumber->display(text);qDebug() << "timer1";}else if (event->timerId() == id2) {qDebug() << "timer2";}else {qDebug() << "timer3";}
}

通过从startTimer返回的ID传入void QObject::killTimer ( int id ) 函数中杀死定时器,结束定时器进入超时处理。

killTimer (id1); 		

2.使用QTimer定时器类

头文件添加:

private slots:void timerUpdate();		// 声明定时器溢出函数

源文件添加:

#include <QTimer>// 构造函数
QTimer *timer = new QTimer(this);           					// 创建一个新的定时器
connect(timer, &QTimer::timeout, this, &Widget::timerUpdate); 	// 关联定时器的溢出信号到槽上
timer->start(1000);                         					// 设置溢出时间为1秒,并启动定时器void Widget::timerUpdate()                  // 定时器溢出处理
{QTime time = QTime::currentTime();      // 获取当前时间QString text = time.toString("hh:mm");  // 转换为字符串if((time.second() % 2) == 0)text[2]=' '; 						// 每隔一秒就将“:”显示为空格ui->lcdNumber->display(text);
}

结果:
在这里插入图片描述

只运行一次的定时器:

QTimer::singleShot(10000, this, &Widget::close);  

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

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

相关文章

pytorch保存模型时报错***object has no attribute 'state_dict'

定义了一个类BaseNet并实例化该类&#xff1a; netBaseNet() 保存net时报错object has no attribute state_dict torch.save(net.state_dict(), models_dir) 原因是定义类的时候不是继承nn.Module类&#xff0c;比如&#xff1a; class BaseNet(object):def __init__(self…

LightOJ - 1140 How Many Zeroes?

Description Jimmy writes down the decimal representations of all natural numbers between and including m and n, (m ≤ n). How many zeroes will he write down? Input Input starts with an integer T (≤ 11000), denoting the number of test cases.Each case cont…

​机器学习算法优缺点对比及选择(汇总篇)

转自&#xff1a;机器学习与统计学本文的目的&#xff0c;是务实、简洁地盘点一番当前机器学习算法。文中内容结合了个人在查阅资料过程中收集到的前人总结&#xff0c;同时添加了部分自身总结&#xff0c;在这里&#xff0c;依据实际使用中的经验&#xff0c;将对此模型优缺点…

pytorch加载的模型测试的结果和保存时测试的结果不一致

假设有一个dropout网络net&#xff0c;训练过程中用测试集进行了测试&#xff0c;接着将该网络进行了保存 torch.save(net.state_dict(), path) 然后将保存的网络加载出来&#xff1a; netclass_net() # 先定义net的结构 net.load_state_dict(torch.load(path)) 接着用同样…

QT学习笔记(八):顺序容器和关联容器

QT学习笔记&#xff08;八&#xff09;&#xff1a;顺序容器和关联容器一、前言二、容器介绍2.1 顺序容器2.2 关联容器二、顺序容器示例三、关联容器一、前言 在Qt库中为我们提供了一系列的基于模板的容器类(container classes)。这些类可以被用来存储特定类型的项(items)。例…

页面的缓存与不缓存设置

HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息&#xff0c;包括浏览器 端&#xff0c;中间缓存服务器端(如&#xff1a;squid等)&#xff0c;Web服务器端。本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情…

MATLAB警告: 矩阵为奇异工作精度

原因是在求逆的时候使用了inv函数&#xff0c;而inv函数对于不是可逆矩阵的矩阵求逆就会出错 将inv函数改为pinv函数&#xff0c;pinv就是对不是可逆矩阵的矩阵求伪逆

QT学习笔记(九):遍历容器-迭代器(iterators)

QT学习笔记&#xff08;九&#xff09;&#xff1a;遍历容器-迭代器&#xff08;iterators&#xff09;遍历容器 &#xff1a;1、Jave风格:2、STL风格:3、foreach 关键字:遍历容器 &#xff1a; 遍历一个容器可以使用迭代器&#xff08;iterators&#xff09;完成&#xff0c;…

pytorch自定义数据集和数据加载器

假设有一个保存为npy格式的numpy数据集&#xff0c;现在需要将其变为pytorch的数据集&#xff0c;并能够被数据加载器DataLoader所加载 首先自定义一个数据集类&#xff0c;继承torch.utils.data.Dataset类 在这个类中要实现__init__&#xff0c;__getitem__&#xff0c;__le…

jQuery 插件格式 规范

方式一&#xff08;自定义对象&#xff09;&#xff1a;(function($, window, document) { var Plugin, defaults, pluginName;调用时的函数名&#xff1a;pluginName "slidesjs";默认配置&#xff1a;defaults {width: 940,height: 528,callback: {loaded: functio…

QT学习笔记(十):通用算法示例

QT学习笔记&#xff08;十&#xff09;&#xff1a;通用算法示例 std是C标准库统一使用的命名空间(namespace)的名称&#xff0c;C标准库中的名字全部都在std这个命名空间中,std也就是英文"standard"&#xff08;标准&#xff09;的缩写。 #include <QCoreAppl…

Input type (torch.cuda.DoubleTensor) and weight type (torch.cuda.FloatTensor) should be the same

原因是没有把输入数据类型转为float类型 首先找到代码出错的位置&#xff0c;将该处的数据类型转为float类型&#xff1a; x x.type(torch.FloatTensor)

了解因果论:从珀尔的《为什么》开始

图I&#xff1a;AI从达特茅斯会议&#xff08;1956年&#xff09;得名至今已有六十年&#xff0c;期间几起几落&#xff0c;群星璀璨&#xff0c;像一个大舞台&#xff0c;你方唱罢我登场&#xff0c;留下了一些永载史册的理论和成就&#xff0c;但涉及因果的甚少作者&#xff…

外观模式(三层解耦)

说到外观模式&#xff0c;很容易想到的是设计一件漂亮的衣服然后穿上自己的身上&#xff0c;让自己看起来更加的漂亮&#xff0c;但是这个可能并不是这样子的&#xff0c;从更深层次的来说&#xff0c;外观更应该是所见即所得的&#xff0c;对于观众来说&#xff0c;看起来可能…

QT学习笔记(十一):QString类

QT学习笔记&#xff08;十一&#xff09;&#xff1a;QString类1、概述2、编辑操作3、查询操作3、转换操作1、概述 1.1 QString 类是 Qt 中用于表示字符串的类&#xff0c;实现在 QtCore 共享库中。QString 类在实现上有以下特征: 1&#xff09;字符串采用 Unicode 内部编码&…

pytorch数据加载时报错OSError: [Errno 22] Invalid argument

将数据加载器的num_workers删去&#xff0c;即由 train_loader torch.utils.data.DataLoader(trainset, batch_sizebatch_size, shuffleTrue, pin_memoryTrue, num_workers3) 改为 train_loader torch.utils.data.DataLoader(trainset, batch_sizebatch_size, shuffleTrue…

人工智能六十年技术简史

作者 | 李理出品 | AI科技大本营&#xff08;rgznai100&#xff09;人类的进化发展史就是一部人类制造和使用工具的历史&#xff0c;不同的工具代表了人类的进化水平。从石器时代、铁器时代、蒸汽时代、电气时代再到现在的信息时代&#xff0c;我们使用更加先进便捷的工具来改变…

windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

本系列分为两篇&#xff1a; 1、【转】windows和linux中搭建python集成开发环境IDE 2、【转】linux和windows下安装python集成开发环境及其python包 3、windows和linux中搭建python集成开发环境IDE——如何设置多个python环境 Install Python packages on Ubuntu 14.04 from ch…

QT学习笔记(十二):透明窗体设置

QT学习笔记&#xff08;十二&#xff09;&#xff1a;透明窗体设置 创建 My_Widget 类 基类为QWidget &#xff0c; My_Widget.cpp 源文件中添加代码 #include "widget.h" #include "ui_widget.h"#include <QGraphicsDropShadowEffect>// 构造函数…