Qt的定时器应用案例 || Qt的图片添加显示

目录

1.ui界面

2.头文件

3.cpp源文件

4.main文件

5.关于ui_mytimerevent.h的代码编译错误

6.图片的添加展示方式

7.结果展示

8.参考文章


1.ui界面

2.头文件

#ifndef MYTIMEREVENT_H
#define MYTIMEREVENT_H

#include <QMainWindow>
#include <QTime>
//#include <QTimerEvent>
QT_BEGIN_NAMESPACE
namespace Ui { class MyTimerEvent; }
QT_END_NAMESPACE

class MyTimerEvent : public QMainWindow
{
    Q_OBJECT

public:
    MyTimerEvent(QWidget *parent = nullptr);
    ~MyTimerEvent();
protected:
    void timerEvent(QTimerEvent* event);

private slots:
    void on_startPushButton1_clicked();
    void on_stopPushButton1_clicked();
    void on_startPushButton2_clicked();
    void on_stopPushButton2_clicked();

private:
    Ui::MyTimerEvent *ui;

    int m_timer1Id;
    int m_timer2Id;

};
#endif // MYTIMEREVENT_H

3.cpp源文件

#include "mytimerevent.h"
#include "ui_mytimerevent.h"
#include<QDebug>
#include<QTime>

MyTimerEvent::MyTimerEvent(QWidget *parent)
    : QMainWindow(parent),
      ui(new Ui::MyTimerEvent)
    //m_timer1Id(-1);
    //m_timer2Id(-1);
{
    ui->setupUi(this);
    // 显示图片
    ui->label->setPixmap(QPixmap(":/new/prefix1/img/mainLocker.png"));
    ui->label->setScaledContents(true);  // 设置图片自适应标签大小
}

MyTimerEvent::~MyTimerEvent()
{
    delete ui;
}


void MyTimerEvent::timerEvent(QTimerEvent *event)
{
    if(event->timerId() == m_timer1Id)
    {
        qDebug()<<"定时器1:"<<QTime::currentTime().toString("hh:mm:ss");

    }else if(event->timerId() == m_timer2Id)
    {
        qDebug()<<"定时器2:"<<QTime::currentTime().toString("hh:mm:ss");
    }
}

void MyTimerEvent::on_startPushButton1_clicked()
{
    m_timer1Id = startTimer(1000*3);
    qDebug()<<"定时器1开始:"<<QTime::currentTime().toString("hh:mm:ss");
}

void MyTimerEvent::on_stopPushButton1_clicked()
{
    killTimer(m_timer1Id);
    qDebug()<<"定时器1停止:"<<QTime::currentTime().toString("hh:mm:ss");
}
void MyTimerEvent::on_startPushButton2_clicked()
{
    m_timer2Id = startTimer(1000*5);
    qDebug()<<"定时器2开始:"<<QTime::currentTime().toString("hh:mm:ss");
}

void MyTimerEvent::on_stopPushButton2_clicked()
{
    killTimer(m_timer2Id);
    qDebug()<<"定时器2停止:"<<QTime::currentTime().toString("hh:mm:ss");
}

4.main文件

5.关于ui_mytimerevent.h的代码编译错误

        Qt软件应会自动构建并更新其相应的ui_xxxx.h的头文件,但在我的项目构建过程中,在cpp源文件中,#include "ui_mytimerevent.h" // 需要确保包含了 UI 头文件。mytimerevent.ui 是 Qt Designer 中设计的 UI 文件,经过 uic 处理后,会生成ui_mytimerevent.h其中包含Ui::MyTimerEvent类的定义,但实际上uic并没有生成了正确的头文件ui_mytimerevent.h。

        首先,在确保我的项目文件.pro中正确地包含了.ui文件,并且项目已经配置为正确使用uic来生成 UI 相关的头文件,确保无误重新编译生成依然无效,新添加的代码功能并没有在运行时展示

        但在引用后依旧出现构建的界面不是新添加的界面,在确认 .pro 文件没有问题,尝试手动运行 uic 工具,看看是否能成功生成头文件,可在对应的项目目录下运行以下命令

uic mytimerevent.ui -o ui_mytimerevent.h

        这条命令会手动运行 uic,并生成一个名为 ui_mytimerevent.h 的头文件。然后便可以手动检查是否可以找到Ui::MyTimerEvent类定义,获得最新的ui_mytimerevent.h后再次引用。最后,清理项目,生成qmake,重新构建,便可得到修改后的qt界面。

        新更新的ui_mytimerevent.h文件若没有及时出现在Qt界面内,也可手动进行添加设定,步骤如下。

6.图片的添加展示方式

QT三种方式插入图片资源,控件显示图片_qt插入图片-CSDN博客

7.结果展示

        定时器1是3s打印1次,定时器2是5s打印1次,右侧为图片展示效果。

8.参考文章

Qt中定时器的使用_qt 定时器-CSDN博客

【QT】史上最全最详细的QSS样式表用法及用例说明_qt qss-CSDN博客

QT从入门到入土(五(2))——多线程(QtConcurrent::run())和线程池 - 唯有自己强大 - 博客园 (cnblogs.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的常用基本指令(下)

Linux常用基本指令 Linux中的基本指令12.head指令13.tail指令简单解释重定向与管道(重要) 14.date指令(时间相关的指令)15.cal指令(不重要)16.find指令(灰常重要&#xff09;17.grep指令(重要)18.which指令和alias指令19.zip/unzip指令&#xff1a;20.tar指令&#xff08;重要&…

元素「宽高比」完美适配的方案

在日常生活中&#xff0c;我们常常会看到视频或照片能够随着页面尺寸变化&#xff0c;按照自身宽高比进行缩放调整。这种效果是如何实现的呢&#xff1f; 可以通过 CSS 和 JavaScript 两种方式完成&#xff0c;其中 CSS 是比较推荐的方式&#xff0c;因为它能充分利用现代浏览…

Android笔记【12】脚手架Scaffold和导航Navigation

一、前言 学习课程时&#xff0c;对于自己不懂的点的记录。 对于cy老师第二节课总结。 二、内容 1、PPT介绍scaffold 2、开始代码实操 先新建一个screen包&#xff0c;写一个Homescreen函数&#xff0c;包括四个页面。 再新建一个compenent包&#xff0c;写一个displayText…

[极客大挑战 2019]HardSQL--详细解析

信息搜集 登录系统&#xff0c;有两个可能的注入点&#xff1a; 随便输一下看看传参类型&#xff1a; 都是GET型。 SQL注入 传参 usernameadmin’&password123 传参 usernameadmin&password123’ username和password传参&#xff0c;四种闭合方式只有单引号报错&a…

Ansible自动化一键部署单节点集群架构

自动化部署利器&#xff1a;Ansible 一键部署脚本 在现代IT基础设施管理中&#xff0c;Ansible以其简洁、强大的自动化能力脱颖而出。以下是精心打造的Ansible自动化一键部署脚本&#xff0c;旨在简化部署流程&#xff0c;提升效率&#xff0c;确保一致性和可靠性。 通过这个…

基于云模型的车辆行驶速度估计算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于云模型的车辆行驶速度估计算法matlab仿真。在智能交通系统中&#xff0c;车辆行驶速度的准确估计对于交通流量监测、安全预警、自动驾驶辅助等方面具有极为重…

C++知识整理day3类与对象(下)——赋值运算符重载、取地址重载、列表初始化、友元、匿名对象、static

文章目录 1.赋值运算符重载1.1 运算符重载1.2 赋值运算符重载 2.取地址重载2.1 const成员函数2.2 取地址运算符重载 3.类与对象的补充3.1 再探构造函数---初始化列表3.2 类型转换3.3 static成员3.4 友元3.5 内部类3.6 匿名对象3.7 对象拷贝时的编译器优化 1.赋值运算符重载 赋…

自然语言处理:基于BERT预训练模型的中文命名实体识别(使用PyTorch)

命名实体识别&#xff08;NER&#xff09; 命名实体识别&#xff08;Named Entity Recognition, NER&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一个关键任务&#xff0c;其目标是从文本中识别出具有特定意义的实体&#xff0c;并将其分类到预定义的类别中。这…

面试题-RocketMQ的基本架构、支持的消息模式、如何保证消息的可靠传输

相关问题 1、RocketMQ的基本架构是怎样的&#xff1f;请简述各组件的作用。 2、RocketMQ支持哪几种消息模式&#xff08;如点对点、发布/订阅&#xff09;&#xff1f;请简要说明它们的区别。 3、如何使用Java客户端实现一个简单的消息生产者和消费者&#xff1f; 4、RocketMQ…

【力扣】3274. 检查棋盘方格颜色是否相同

一、题目 给你两个字符串 coordinate1 和 coordinate2&#xff0c;代表 8 x 8 国际象棋棋盘上的两个方格的坐标。以下是棋盘格的参考图&#xff1a; 如果这两个方格颜色相同&#xff0c;返回 true&#xff0c;否则返回 false。坐标总是表示有效的棋盘方格。坐标的格式总是先字…

mysql 5.7安装及安装后无法启动问题处理

下载安装包&#xff0c;直接解压 配置环境变量 创建my.ini文件 [mysqld] #端口号 port 3306 #mysql-5.7.27-winx64的路径 basedirD:/soft/mysql57 #mysql-5.7.27-winx64的路径\data datadirD:/soft/mysql57/data #最大连接数 max_connections200 #编码 character-set-server…

2023年第十四届蓝桥杯Scratch国赛真题—推箱子

推箱子 程序演示及其源码解析&#xff0c;可前往&#xff1a; https://www.hixinao.com/scratch/creation/show-188.html 若需在线编程&#xff0c;在线测评模考&#xff0c;助力赛事可自行前往题库中心&#xff0c;按需查找&#xff1a; https://www.hixinao.com/ 题库涵盖…

级联树结构TreeSelect和上级反查

接口返回结构 前端展示格式 前端组件 <template><div ><el-scrollbar height"70vh"><el-tree :data"deptOptions" :props"{ label: label, children: children }" :expand-on-click-node"false":filter-node-me…

28.100ASK_T113-PRO Linux+QT 显示一张照片

1.添加资源文件 2. 主要代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QImage> #include <QPixmap>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);QIm…

基于PySpark 使用线性回归、随机森林以及模型融合实现天气预测

基于PySpark 实现天气预测与模型集成 在大数据分析与机器学习领域&#xff0c;Spark 提供了强大的计算能力和灵活的扩展性。本文将介绍如何利用 PySpark 完成以下任务&#xff1a; 1、数据预处理&#xff1a;清洗和编码天气数据。 2、特征工程&#xff1a;合并数值和分类特征…

【MySQL — 数据库基础】深入理解数据库服务与数据库关系、MySQL连接创建、客户端工具及架构解析

目录 1. 数据库服务&#xff06;数据库&#xff06;表之间的关系 1.1 复习 my.ini 1.2 MYSQL服务基于mysqld启动而启动 1.3 数据库服务的具体含义 1.4 数据库服务&数据库&表之间的关系 2. 客户端工具 2.1 客户端连接MySQL服务器 2.2 客…

各种类型无人机性能及优缺点技术详解

无人机系统种类繁多、用途广泛&#xff0c;且特点鲜明&#xff0c;致使其在尺寸、质量、航程、航时、飞行高度、飞行速度以及任务载荷等多方面都有较大差异。以下是对几种常见类型无人机的性能、优缺点技术的详细解析&#xff1a; 一、固定翼无人机 1.性能&#xff1a; 固定翼…

yolo辅助我们健身锻炼

使用软件辅助健身能够大大提升运动效果并帮助你更轻松地达成健身目标。确保每次锻炼都更加高效且针对性强,精确记录你的训练进度,帮助你更清晰地看到自己的进步,避免无效训练。 借助YOLO11的尖端计算机视觉技术,跟踪和分析锻炼变得异常简单。它可以无缝检测和监控多种锻炼…

Linux修改系统及终端命令行中的用户名

0、前言 最近捣鼓了一下一个很久之前的用过的ubuntu系统&#xff0c;但是之前随意设置了一个用户名&#xff0c;突发奇想地去修改了一下这个ubuntu系统的系统用户名&#xff0c;发现修改起来还是有些麻烦&#xff0c;并没有那种一键修改的选项&#xff0c;所以在这篇博客下面记…

基于智能语音交互的智能呼叫中心工作机制

在智能化和信息化不断进步的现代&#xff0c;智能呼叫中心为客户提供高质量、高效率的服务体验&#xff0c;提升众多品牌用户的满意度和忠诚度。作为实现智能呼叫中心的关键技术之一的智能语音交互技术&#xff0c;它通过集成自然语言处理&#xff08;NLP&#xff09;、语音识别…