欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Qt的定时器应用案例 || Qt的图片添加显示

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

2024/12/27 1:55:51 来源:https://blog.csdn.net/yiyayiyao11/article/details/143747843  浏览:    关键词: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_NAMESPACEclass MyTimerEvent : public QMainWindow
{Q_OBJECTpublic: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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com