当前位置: 首页 > news >正文

【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); 每隔指定的时间间隔&#xff0c;触发一次定时器事件。 2.定时器事件处理 virtual void timerEvent (QTimeEvent…...

Java多线程技术五——单例模式与多线程-备份

1 概述 本章的知识点非常重要。在单例模式与多线程技术相结合的过程中&#xff0c;我们能发现很多以前从未考虑过的问题。这些不良的程序设计如果应用在商业项目中将会带来非常大的麻烦。本章的案例也充分说明&#xff0c;线程与某些技术相结合中&#xff0c;我们要考虑的事情会…...

Seem环境安装

创建虚拟环境 conda create -n seem python3.8 conda activate seem 安装相关依赖&#xff1a;&#xff08;不按照的话会报错&#xff09; 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.双亲委派 从下往上找&#xff0c;有同名类优先使用上级加载器的&#xff0c;不用自己…...

家校互通小程序实战开发02首页搭建

目录 1 创建应用2 搭建首页总结 我们上一篇介绍了家校互通小程序的需求&#xff0c;创建了对应的数据源。有了这个基础的分析之后&#xff0c;我们就可以进入到开发阶段了。开发小程序&#xff0c;先需要创建应用。 1 创建应用 登录控制台&#xff0c;点击创建应用&#xff0c…...

使用matlab制作声音采样率转换、播放以及显示的界面

利用matlab做一个声音采样率转换、播放以及显示的界面 大抵流程&#xff1a; 图形界面创建&#xff1a;使用figure函数创建名为“声音采样率转换”的图形界面&#xff0c;并设置了其位置和大小。 按钮和文本框&#xff1a;使用uicontrol函数创建了选择音频文件的按钮、显示当前…...

FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系

FPGA-AMBA协议、APB协议、AHB协议、AXI&#xff14;协议规范概述 笔记记录&#xff0c;AMBA协议、APB协议、AHB规范、AXI&#xff14;协议规范概述&#xff0c;只是概述描述&#xff0c;具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 文章目录 FPGA-AMBA协议…...

NI VeriStand中的硬件I / O延迟时间

NI VeriStand中的硬件I / O延迟时间 - NI 适用于 软件 VeriStand 问题详述 在我的VeriStand项目中&#xff0c;我要从DAQ或FPGA硬件中获取数据&#xff0c;在模型中处理输出&#xff0c;然后输出数据。在硬件输入和输出之间&#xff0c;我应该期望什么样的延迟&#xff1f;如…...

YoloV8的目标检测推理

YoloV8的目标检测推理 原始的YoloV8封装的层次太高&#xff0c;想要为我们所用可能需要阅读很多API&#xff0c;下面给出比较简单的使用方式 导入所需的库 os&#xff1a;用于操作文件系统。cv2 (OpenCV)&#xff1a;用于图像处理。numpy&#xff1a;提供数学运算&#xff0…...

c语言中数据结构

一、结构体的由来 1. 数据类型的不足 C语言中&#xff0c;基本数据类型只有整型、字符型、浮点型等少数几种&#xff0c;无法满足复杂数据类型的需要。 2. 数组的限制 虽然数组可以存储多个同类型的数据&#xff0c;但是数组中的元素个数是固定的&#xff0c;无法动态地改变…...

【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南

前言 本文为大家带来的是 JoeanAmier 开发的 TikTokDownloader 项目&#xff0c;这是一个高效的下载 抖音/ TikTok 视频的开源工具。特别适合用户们保存他们喜欢的视频或分享给其他人。 TikTokDownloader 是一个专门设计用于下载 TikTok 视频的工具&#xff0c;旨在为用户提供一…...

Java开发框架和中间件面试题(3)

14.Spring事务中的隔离级别有哪几种&#xff1f; 在TransactionDefinition接口中定义了五个表示隔离级别的常量&#xff1a; 1⃣️ISOLATION DEFAULT&#xff1a;使用后端数据库默认的隔离级别&#xff0c;Mysql默认采用的可重复读隔离级别&#xff1b;Oracle默认采用的读已提…...

React面试题

1. 什么是 React&#xff1f; React 是一个用于构建用户界面的 JavaScript 库。它由 Facebook 开发并开源&#xff0c;广泛应用于现代 Web 应用程序的开发中。 2. React 中的组件是什么&#xff1f; 组件是 React 中构建用户界面的基本单位。它们是可重用且自包含的代码块&a…...

机器学习-数学学习汇总

***I数学只是一个工具&#xff0c;会使用&#xff0c;能解决问题就可以了&#xff0c;精确例如到3.14够用就可以了*** 微积分作用&#xff1a;解决非线性问题 学习&#xff1a;27分。 高中数学&#xff1a; 1.高中数学所有知识点表格总结&#xff0c;高中知识点一个不漏&am…...

17个常用经典数据可视化图表与冷门图表

数据可视化是创建信息图形表示的过程。随着可视化技术的飞速发展&#xff0c;可以利用强大的可视化工具选择合适的数据可视化图表来展示数据。以下专业人士都应该知道的一些最重要的数据可视化图表。 常见数据可视化图表 饼图 饼图是最常见和最基本的数据可视化图表之一。饼图…...

(五)Python 垃圾回收机制

一、垃圾回收的工作原理 Python的垃圾回收机制是自动的&#xff0c;负责管理程序中的内存。它基于两种主要技术&#xff1a;引用计数和循环引用检测器。 引用计数 每当一个对象被引用时&#xff0c;Python会增加该对象的引用计数&#xff1b;每当一个对象不再被引用时&#…...

策略模式(组件协作)

策略模式&#xff08;组件协作&#xff09; 链接&#xff1a;策略模式实例代码 注解 目的 正常情况下&#xff0c;一个类/对象中会包含其所有可能会使用的内外方法&#xff0c;但是一般情况下&#xff0c;这些常使用的类都是由不同的父类继承、组合得来的&#xff0c;来实现…...

每日一题-----逆序字符串

大家好我是Beilef&#xff0c;在一个美好的下午我意外接触到编程并且产生了兴趣&#xff0c;哈哈我要努力成为一个跨界者&#xff0c;让我们一起加油吧O(∩_∩)O 文章目录 目录 文章目录 前言 大家好请上车 一、逆序字符串 题⽬描述&#xff1a; 输⼊⼀个字符串&#xff0c;写…...

js两个对象数组合并。并且去掉里边某个属性相同的对象

要合并两个JavaScript对象数组并去除其中某个属性相同的对象&#xff0c;您可以使用concat()方法将两个数组合并&#xff0c;然后使用reduce()方法进行筛选。 以下是一个示例代码&#xff0c;演示了如何合并两个对象数组并去除其中某个属性相同的对象 const array1 [{ id: 1…...

创建重试机制

要自己创建重试机制&#xff0c;可以使用循环结构来实现。以下是一个简单的重试机制的示例代码&#xff1a; java public class RetryExample { public static void main(String[] args) { int maxRetryTimes 3; // 最大重试次数 int retryInterval 1000; /…...

从AT24C02 EEPROM的I2C时序出发,手把手调试你的蓝桥杯单片机存储模块

从AT24C02 EEPROM的I2C时序出发&#xff0c;手把手调试你的蓝桥杯单片机存储模块 在蓝桥杯单片机竞赛中&#xff0c;AT24C02 EEPROM存储模块的稳定读写是基本功&#xff0c;但真正的高手往往能在底层通信协议层面发现问题、解决问题。本文将带你从I2C时序的微观视角&#xff0c…...

音视频开发避坑:YUV420P图像处理时Stride不对齐,你的内存拷贝为啥总出错?

音视频开发避坑&#xff1a;YUV420P图像处理时Stride不对齐&#xff0c;你的内存拷贝为啥总出错&#xff1f; 在音视频开发中&#xff0c;YUV420P格式因其高效的存储方式被广泛使用&#xff0c;但许多开发者在处理这类图像时&#xff0c;常常会遇到内存拷贝错误、程序崩溃或画面…...

别再让容器‘断网’了!Docker DNS配置保姆级教程(从全局到单容器,含8.8.8.8等常用DNS)

Docker容器网络疑难排查&#xff1a;全方位DNS配置指南与实战技巧 当你正在赶一个紧急项目&#xff0c;突然发现Docker容器无法连接外部API服务&#xff0c;控制台不断抛出"Name or service not known"错误——这种场景对开发者来说再熟悉不过了。容器网络问题&#…...

CANN/asc-devkit Tiling模板参数选择宏

ASCENDC_TPL_SEL_PARAM 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://…...

ArcSWAT模型结果可视化:用MATLAB一键绘制专业级降水-径流过程图(附完整代码)

ArcSWAT模型结果可视化&#xff1a;用MATLAB一键绘制专业级降水-径流过程图&#xff08;附完整代码&#xff09; 水文模型的后处理环节往往决定着研究成果的呈现质量。当我们在ArcSWAT中完成复杂的流域划分、参数率定和径流模拟后&#xff0c;如何将海量的数据输出转化为直观、…...

3步打造高效macOS菜单栏:Hidden Bar深度使用指南

3步打造高效macOS菜单栏&#xff1a;Hidden Bar深度使用指南 【免费下载链接】hidden An ultra-light MacOS utility that helps hide menu bar icons 项目地址: https://gitcode.com/gh_mirrors/hi/hidden 作为macOS用户&#xff0c;你是否曾为菜单栏图标拥挤不堪而烦恼…...

【C++】类和对象( 类的定义、实例化、 this指针、 C++和C语言实现Stack对比)

小编主页详情<-请点击 小编gitee代码仓库<-请点击 本文主要介绍了类和对象&#xff08; 类的定义、实例化、 this指针、 C和C语言实现Stack对比&#xff09;&#xff0c;内容全由作者原创&#xff08;无AI&#xff09;&#xff0c;并带有配图帮助博友们更好的理解&#x…...

终极Windows驱动清理指南:3分钟快速释放C盘隐藏空间

终极Windows驱动清理指南&#xff1a;3分钟快速释放C盘隐藏空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统越用越慢&#xff0c;C盘空间莫名其妙消失&#x…...

负载锌酞菁(ZnPc)/α-萘酚温敏水凝胶,ZnPc/α-Naphthol

名称&#xff1a;负载锌酞菁&#xff08;ZnPc&#xff09;/α-萘酚温敏水凝胶&#xff0c;ZnPc/α-Naphthol 一、材料概览&#xff1a;双重功能的精妙融合 负载锌酞菁&#xff08;ZnPc&#xff09;/α-萘酚温敏水凝胶&#xff0c;是将具有优异光催化活性的锌酞菁&#xff08;Zn…...

【Perplexity诗词歌赋搜索黑科技】:20年NLP专家首度公开5大语义对齐技巧,让古诗检索准确率飙升至98.7%

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity诗词歌赋搜索黑科技全景透视 Perplexity 并非专为古籍设计的搜索引擎&#xff0c;但其基于大语言模型的实时语义理解与多源交叉验证机制&#xff0c;意外地在诗词歌赋领域展现出颠覆性能力——它不依…...