ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QTimer计时器和QTimerEvent的应用

2021-07-07 19:32:47  阅读:174  来源: 互联网

标签:QTimerEvent int void 计时器 ui include MainWindow QTimer


QTimer是一个计时器,现在把有用的东邪贴出来

//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTime>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    void timerEvent(QTimerEvent *);
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
signals:
    void timeout();
public slots:
    void printFile();

public:
    void creatConnection();
    void Init();
private:
    Ui::MainWindow *ui;
    QTimer* printfpTimer;//QTimer
    int id1;
    int id2;
    int num = 0;
};

#endif // MAINWINDOW_H


//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QTimerEvent>
#include <QTimer>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    printfpTimer = new QTimer(this);

    id1 = startTimer(5000);
    id2 = startTimer(2000);

    printfpTimer->start(1000);
    //printfpTimer->setInterval(100);
    creatConnection();
    printfpTimer->setSingleShot(false);//默认就是false,这行也可以不写

}



void MainWindow::creatConnection()
{
    connect(printfpTimer, SIGNAL(timeout()), this, SLOT(printFile()));
}



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

void MainWindow::printFile()
{
    static int num3=0;
    ui->lineEdit->setText(QString::number(num3++));
}

void MainWindow::timerEvent(QTimerEvent *event)
{
    if(event->timerId() == id1)
    ui->label_1->setText(QString::number(num++));
    static int num2=0;
    if(event->timerId() == id2)
    ui->label_2->setText(QString::number(num2++));
}
//.cpp文件--使用singleShot静态函数,此时不需要实例化QTimer
//QTimer::singleShot(10000, this, SLOT(onZipTodayFile()));


//main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "Application.h"

int main(int argc, char *argv[])
{
    //QApplication a(argc, argv);
    CApplication a( argc, argv );
    MainWindow w;
    w.show();

    return a.exec();
}

 

标签:QTimerEvent,int,void,计时器,ui,include,MainWindow,QTimer
来源: https://www.cnblogs.com/huskyWuWuWu/p/14983208.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有