【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; /…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
