《QT实用小工具·四十》显示帧率的控件

1、概述
源码放在文章末尾

该项目实现了可以显示帧率的控件,项目demo演示如下所示:
在这里插入图片描述

项目部分代码如下所示:

#ifndef FPSITEM_H
#define FPSITEM_H

#include <QQuickItem>

class FpsItem : public QQuickItem
{
    Q_OBJECT

    Q_PROPERTY(int fps READ fps NOTIFY fpsChanged)

public:
    FpsItem(QQuickItem *parent = nullptr);

    int fps() const;

signals:
    void fpsChanged();

private:
    int m_fps = 0;
    int m_frameCount = 0;
};

#endif // FPSITEM_H

#include "fpsitem.h"

#include <QQuickWindow>
#include <QTimer>

FpsItem::FpsItem(QQuickItem *parent)
    : QQuickItem(parent)
{
    QTimer *timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this, [this]{ m_fps = m_frameCount; m_frameCount = 0; emit fpsChanged(); });
    connect(this, &QQuickItem::windowChanged, this, [this]{
        if (window())
            connect(window(), &QQuickWindow::afterRendering, this
                    , [this]{ m_frameCount++; }, Qt::DirectConnection);
    });
    timer->start(1000);
}

int FpsItem::fps() const
{
    return m_fps;
}

源码下载

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 14:38:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 14:38:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 14:38:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 14:38:03       18 阅读

热门阅读

  1. Spring AOP注解开发详解

    2024-04-25 14:38:03       13 阅读
  2. Python语法糖大全

    2024-04-25 14:38:03       14 阅读
  3. 【docker 】docker-compose 部署mongoDB

    2024-04-25 14:38:03       11 阅读
  4. Swift中TableView的原理

    2024-04-25 14:38:03       13 阅读
  5. Vim的快速入门

    2024-04-25 14:38:03       13 阅读
  6. 爬虫工具-推广-推广链接

    2024-04-25 14:38:03       14 阅读
  7. 面试算法十问(中英文)

    2024-04-25 14:38:03       15 阅读
  8. 装饰器模式

    2024-04-25 14:38:03       12 阅读
  9. 面试算法十问2(中英文)

    2024-04-25 14:38:03       16 阅读
  10. Copula(3)

    2024-04-25 14:38:03       13 阅读
  11. Android 学习 鸿蒙HarmonyOS 4.0 第一天

    2024-04-25 14:38:03       13 阅读
  12. linux 驱动编程笔记

    2024-04-25 14:38:03       12 阅读
  13. vue里面事件修饰符.prevent使用案例

    2024-04-25 14:38:03       13 阅读
  14. leveldb中THREAD_ANNOTATION_ATTRIBUTE__宏的作用

    2024-04-25 14:38:03       14 阅读
  15. 深入解读Dubbo:微服务RPC框架的佼佼者

    2024-04-25 14:38:03       18 阅读