【Qt-Timer】
Qt编程指南
- ■ QTimeEvent
- ■ Qtimer
- ■ QDateTimeEdit
- ■ QDateTime
- ■
- ■
■ QTimeEvent
1.启动定时器
定时器ID startTimer (时间间隔);
int idt = startTimer (250);
每隔指定的时间间隔,触发一次定时器事件。
2.定时器事件处理
virtual void timerEvent (QTimeEvent* envet);
每当定时器事件触发时,该虚函数被自动调用。
通过QTimeEvent::timerId()区分不同的定时器。
3.关闭定时器
killTimer (定时器ID);
■ Qtimer
timerLiquid = new QTimer(this);
timerLiquid->start(60000); //60000==1min
connect(timerLiquid,SIGNAL(timeout()),this,SLOT(slots_timerLiquidHandle()));
void MainWindow::slots_timerLiquidHandle()
{static float value = 0.0001f;for(int i=1;i<=PUMPMAXNUMBER;i++){value += PumpVect[i]->getTotalVolume();}emit emit_TotalVolumeToChart(value+=1);
}
private slots:void slots_timerLiquidHandle();
public slots:void slots_timerLiquidHandle();timer1 = new QTimer(this); // 1-second timertimer1->start(1000);connect(timer1,&QTimer::timeout,[=](){pumpALeve = m_alarmInfo.Level();setAlarmBackColour(pumpALeve); //NO_LEVEL_ALARM MID_LEVEL_ALARM HIGH_LEVEL_ALARMsetAlarmString(getRoundAlarmStr(pumpALeve));});
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(processOneThing()));
timer->start();
这时,processOneThing()将会被重复调用并且应该很快返回(通常在处理一个数据项之后),这样Qt可以把事件传送给窗口部件,并且一旦它完成这个工作就停止这个定时器。这是在图形用户界面应用程序中实现繁重的工作的一个典型方法QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);QTimer::singleShot(100, this, SLOT(initData()));
QTimer::singleShot(200, this, SLOT(updateCaption()));
可以通过设置setSingleShot(true)来让定时器只执行一次。也可以使用静态函数QTimer::singleShot():
class Widget2 : public QWidget
{Q_OBJECT
public:Widget2(QWidget* parent = 0 ):QWidget(parent),timeID(0){QPalette palette (this->palette());palette.setBrush(QPalette::Background, QBrush(QColor(100,12,130)));this-> setPalette( palette );//2. 创建定时器timeID = startTimer(100,Qt::PreciseTimer);}~Widget2(){}
protected:// 3. 重写定时器事件,接收定时的到来void timerEvent(QTimerEvent *event){// 4. 判断是否为这个定时器ID(系统可能有多个定时器Id、这种方式启动的话、全放在这里处理)if(event->timerId() == timeID){//TODO functionif(timeID)killTimer(timeID);// 5.杀死定时器timeID = 0;}}
private:int timeID;//1. 声明定时器ID
};
■ QDateTimeEdit
/*实例化对象,传入当前日期与时间*/
dateTimeEdit = new QDateTimeEdit(QDateTime::currentDateTime(),this);
dateTimeEdit->setGeometry(300, 200, 200, 30);
/* 弹出日期控件与否 */
//dateTimeEdit->setCalendarPopup(true);
/* 实例化对象,传入当前时间 */
timeEdit = new QTimeEdit(QTime::currentTime(),this);
timeEdit->setGeometry(300, 240, 200, 30);
/* 实例化对象,传入当前日期 */
dateEdit = new QDateEdit(QDate::currentDate(),this);
dateEdit->setGeometry(300, 280, 200, 30);
QDateTimeEdit.setDisplayFormat() #指定显示格式
QDateTimeEdit{
background:transparent;
border:1px solid rgb(82,143,199);
border-radius:2px;
min-height:26px;
max-height:26px;
}QDateTimeEdit::up-arrow{
image:url(:/commonImg/Resources/image/common/upArrow.png);
}QDateTimeEdit::down-arrow {
image:url(:/commonImg/Resources/image/common/downArrow.png);
}
QDateTimeEdit{
color: rgb(255, 255, 255);
background:transparent;
border:1px solid rgb(82,143,199);
border-radius:5px;
}用qt 方式修改系统时间ui->dateTimeEdit->setProperty("noinput", true);
// ui->dateTimeEdit->setDisplayFormat("yyyy-MM-dd HH:mm:ss");ui->dateTimeEdit->setDisplayFormat("yyyy-MM-dd HH:mm");
// ui->dateTimeEdit->setCalendarPopup(true);ui->dateTimeEdit->setDateTime(QDateTime::currentDateTime());// 监听dateTimeEdit控件的valueChanged()信号,当用户修改日期和时间时执行操作QObject::connect(ui->dateTimeEdit, &QDateTimeEdit::dateTimeChanged, [&](const QDateTime &dateTime) {QString dateTimeStr = dateTime.toString("yyyy-MM-dd HH:mm:ss");// 设置系统时间QString cmd = QString("date -s \"%1\"").arg(dateTimeStr);qDebug() << "--------" << cmd;QProcess::execute(cmd);});C语言 使用系统调用方式修改系统时间
void User::uphwclock(int y, int m, int d, int h, int min, int s)
{char data[100];sprintf(data,"date -s \"%d-%d-%d %d:%d:%d\"",y,m,d,h,min,s);#if __arm__system(data);system("hwclock -w");
#endif
}
■ QDateTime
qint64 m_cursec = QDateTime::currentDateTime().toMSecsSinceEpoch(); //毫秒
QDate dd = QDateTime::fromString("2023/6/6 10:6:10","yyyy/MM/dd hh:mm:ss").date();
■
■
相关文章:
【Qt-Timer】
Qt编程指南 ■ QTimeEvent■ Qtimer■ QDateTimeEdit■ QDateTime■■ ■ QTimeEvent 1.启动定时器 定时器ID startTimer (时间间隔); int idt startTimer (250); 每隔指定的时间间隔,触发一次定时器事件。 2.定时器事件处理 virtual void timerEvent (QTimeEvent…...
Java多线程技术五——单例模式与多线程-备份
1 概述 本章的知识点非常重要。在单例模式与多线程技术相结合的过程中,我们能发现很多以前从未考虑过的问题。这些不良的程序设计如果应用在商业项目中将会带来非常大的麻烦。本章的案例也充分说明,线程与某些技术相结合中,我们要考虑的事情会…...
Seem环境安装
创建虚拟环境 conda create -n seem python3.8 conda activate seem 安装相关依赖:(不按照的话会报错) sudo apt-get install openmpi-bin libopenmpi-devconda install gcc_linux-64pip install mpi4py 导入环境 export PYTHONPATH$(pwd…...
java八股jvm
JVM虚拟机篇-01-JVM介绍、运行流程_哔哩哔哩_bilibili 1.PC程序计数器 2.堆 3.虚拟机栈 4.方法区/永久代/元空间 5.直接内存 JVM虚拟机篇-06-JVM组成-你听过直接内存吗_哔哩哔哩_bilibili 6.双亲委派 从下往上找,有同名类优先使用上级加载器的,不用自己…...
家校互通小程序实战开发02首页搭建
目录 1 创建应用2 搭建首页总结 我们上一篇介绍了家校互通小程序的需求,创建了对应的数据源。有了这个基础的分析之后,我们就可以进入到开发阶段了。开发小程序,先需要创建应用。 1 创建应用 登录控制台,点击创建应用,…...
使用matlab制作声音采样率转换、播放以及显示的界面
利用matlab做一个声音采样率转换、播放以及显示的界面 大抵流程: 图形界面创建:使用figure函数创建名为“声音采样率转换”的图形界面,并设置了其位置和大小。 按钮和文本框:使用uicontrol函数创建了选择音频文件的按钮、显示当前…...
FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系
FPGA-AMBA协议、APB协议、AHB协议、AXI4协议规范概述 笔记记录,AMBA协议、APB协议、AHB规范、AXI4协议规范概述,只是概述描述,具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 文章目录 FPGA-AMBA协议…...
NI VeriStand中的硬件I / O延迟时间
NI VeriStand中的硬件I / O延迟时间 - NI 适用于 软件 VeriStand 问题详述 在我的VeriStand项目中,我要从DAQ或FPGA硬件中获取数据,在模型中处理输出,然后输出数据。在硬件输入和输出之间,我应该期望什么样的延迟?如…...
YoloV8的目标检测推理
YoloV8的目标检测推理 原始的YoloV8封装的层次太高,想要为我们所用可能需要阅读很多API,下面给出比较简单的使用方式 导入所需的库 os:用于操作文件系统。cv2 (OpenCV):用于图像处理。numpy:提供数学运算࿰…...
c语言中数据结构
一、结构体的由来 1. 数据类型的不足 C语言中,基本数据类型只有整型、字符型、浮点型等少数几种,无法满足复杂数据类型的需要。 2. 数组的限制 虽然数组可以存储多个同类型的数据,但是数组中的元素个数是固定的,无法动态地改变…...
【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南
前言 本文为大家带来的是 JoeanAmier 开发的 TikTokDownloader 项目,这是一个高效的下载 抖音/ TikTok 视频的开源工具。特别适合用户们保存他们喜欢的视频或分享给其他人。 TikTokDownloader 是一个专门设计用于下载 TikTok 视频的工具,旨在为用户提供一…...
Java开发框架和中间件面试题(3)
14.Spring事务中的隔离级别有哪几种? 在TransactionDefinition接口中定义了五个表示隔离级别的常量: 1⃣️ISOLATION DEFAULT:使用后端数据库默认的隔离级别,Mysql默认采用的可重复读隔离级别;Oracle默认采用的读已提…...
React面试题
1. 什么是 React? React 是一个用于构建用户界面的 JavaScript 库。它由 Facebook 开发并开源,广泛应用于现代 Web 应用程序的开发中。 2. React 中的组件是什么? 组件是 React 中构建用户界面的基本单位。它们是可重用且自包含的代码块&a…...
机器学习-数学学习汇总
***I数学只是一个工具,会使用,能解决问题就可以了,精确例如到3.14够用就可以了*** 微积分作用:解决非线性问题 学习:27分。 高中数学: 1.高中数学所有知识点表格总结,高中知识点一个不漏&am…...
17个常用经典数据可视化图表与冷门图表
数据可视化是创建信息图形表示的过程。随着可视化技术的飞速发展,可以利用强大的可视化工具选择合适的数据可视化图表来展示数据。以下专业人士都应该知道的一些最重要的数据可视化图表。 常见数据可视化图表 饼图 饼图是最常见和最基本的数据可视化图表之一。饼图…...
(五)Python 垃圾回收机制
一、垃圾回收的工作原理 Python的垃圾回收机制是自动的,负责管理程序中的内存。它基于两种主要技术:引用计数和循环引用检测器。 引用计数 每当一个对象被引用时,Python会增加该对象的引用计数;每当一个对象不再被引用时&#…...
策略模式(组件协作)
策略模式(组件协作) 链接:策略模式实例代码 注解 目的 正常情况下,一个类/对象中会包含其所有可能会使用的内外方法,但是一般情况下,这些常使用的类都是由不同的父类继承、组合得来的,来实现…...
每日一题-----逆序字符串
大家好我是Beilef,在一个美好的下午我意外接触到编程并且产生了兴趣,哈哈我要努力成为一个跨界者,让我们一起加油吧O(∩_∩)O 文章目录 目录 文章目录 前言 大家好请上车 一、逆序字符串 题⽬描述: 输⼊⼀个字符串,写…...
js两个对象数组合并。并且去掉里边某个属性相同的对象
要合并两个JavaScript对象数组并去除其中某个属性相同的对象,您可以使用concat()方法将两个数组合并,然后使用reduce()方法进行筛选。 以下是一个示例代码,演示了如何合并两个对象数组并去除其中某个属性相同的对象 const array1 [{ id: 1…...
创建重试机制
要自己创建重试机制,可以使用循环结构来实现。以下是一个简单的重试机制的示例代码: java public class RetryExample { public static void main(String[] args) { int maxRetryTimes 3; // 最大重试次数 int retryInterval 1000; /…...
从AT24C02 EEPROM的I2C时序出发,手把手调试你的蓝桥杯单片机存储模块
从AT24C02 EEPROM的I2C时序出发,手把手调试你的蓝桥杯单片机存储模块 在蓝桥杯单片机竞赛中,AT24C02 EEPROM存储模块的稳定读写是基本功,但真正的高手往往能在底层通信协议层面发现问题、解决问题。本文将带你从I2C时序的微观视角,…...
音视频开发避坑:YUV420P图像处理时Stride不对齐,你的内存拷贝为啥总出错?
音视频开发避坑:YUV420P图像处理时Stride不对齐,你的内存拷贝为啥总出错? 在音视频开发中,YUV420P格式因其高效的存储方式被广泛使用,但许多开发者在处理这类图像时,常常会遇到内存拷贝错误、程序崩溃或画面…...
别再让容器‘断网’了!Docker DNS配置保姆级教程(从全局到单容器,含8.8.8.8等常用DNS)
Docker容器网络疑难排查:全方位DNS配置指南与实战技巧 当你正在赶一个紧急项目,突然发现Docker容器无法连接外部API服务,控制台不断抛出"Name or service not known"错误——这种场景对开发者来说再熟悉不过了。容器网络问题&#…...
CANN/asc-devkit Tiling模板参数选择宏
ASCENDC_TPL_SEL_PARAM 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://…...
ArcSWAT模型结果可视化:用MATLAB一键绘制专业级降水-径流过程图(附完整代码)
ArcSWAT模型结果可视化:用MATLAB一键绘制专业级降水-径流过程图(附完整代码) 水文模型的后处理环节往往决定着研究成果的呈现质量。当我们在ArcSWAT中完成复杂的流域划分、参数率定和径流模拟后,如何将海量的数据输出转化为直观、…...
3步打造高效macOS菜单栏:Hidden Bar深度使用指南
3步打造高效macOS菜单栏:Hidden Bar深度使用指南 【免费下载链接】hidden An ultra-light MacOS utility that helps hide menu bar icons 项目地址: https://gitcode.com/gh_mirrors/hi/hidden 作为macOS用户,你是否曾为菜单栏图标拥挤不堪而烦恼…...
【C++】类和对象( 类的定义、实例化、 this指针、 C++和C语言实现Stack对比)
小编主页详情<-请点击 小编gitee代码仓库<-请点击 本文主要介绍了类和对象( 类的定义、实例化、 this指针、 C和C语言实现Stack对比),内容全由作者原创(无AI),并带有配图帮助博友们更好的理解&#x…...
终极Windows驱动清理指南:3分钟快速释放C盘隐藏空间
终极Windows驱动清理指南:3分钟快速释放C盘隐藏空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统越用越慢,C盘空间莫名其妙消失&#x…...
负载锌酞菁(ZnPc)/α-萘酚温敏水凝胶,ZnPc/α-Naphthol
名称:负载锌酞菁(ZnPc)/α-萘酚温敏水凝胶,ZnPc/α-Naphthol 一、材料概览:双重功能的精妙融合 负载锌酞菁(ZnPc)/α-萘酚温敏水凝胶,是将具有优异光催化活性的锌酞菁(Zn…...
【Perplexity诗词歌赋搜索黑科技】:20年NLP专家首度公开5大语义对齐技巧,让古诗检索准确率飙升至98.7%
更多请点击: https://kaifayun.com 第一章:Perplexity诗词歌赋搜索黑科技全景透视 Perplexity 并非专为古籍设计的搜索引擎,但其基于大语言模型的实时语义理解与多源交叉验证机制,意外地在诗词歌赋领域展现出颠覆性能力——它不依…...
