QTimer与QTime实现电子时钟

 更新时间:2020年05月30日 08:58:09   作者:Saqino  
这篇文章主要为大家详细介绍了QTimer与QTime实现电子时钟,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了QTimer与QTime实现电子时钟的具体代码,供大家参考,具体内容如下

使用QLCDNumber控件进行显示

QLCDNumber控件默认只显示5个字符,可以使用setDigitCount(int size)进行设置显示个数

使用Display(QString str) 设置显示内容

该函数拥有多个重载,字符 整型 浮点型都可以作为参数 

效果图:

 

代码:头文件

#include <QLCDNumber>
 
class NumClock : public QLCDNumber
{
 Q_OBJECT
public:
 explicit NumClock(QWidget *parent = nullptr);
 void mousePressEvent(QMouseEvent *event);
 void mouseMoveEvent(QMouseEvent *event);
 
signals:
 
public slots:
 void updateTime();
 
private:
 QTimer * timer;
 QPoint mouseOfPonit; // 鼠标坐标跟窗口左上角坐标的偏移值
 bool showColon;    //是否显示:
};

cpp文件:

#include "numclock.h"
#include <QTimer>
#include <QTime>
#include <QMouseEvent>
#include <QDebug>
 
NumClock::NumClock(QWidget *parent) : QLCDNumber(parent)
{
 timer = new QTimer(this);
 timer->setTimerType(Qt::PreciseTimer); // 设置精度为较高精度,差距在毫秒内
 timer->start(1000);
 connect(timer, SIGNAL(timeout()), this, SLOT(updateTime()),Qt::QueuedConnection);
 
 setWindowFlag(Qt::FramelessWindowHint); //没有面板边框标题栏的窗体
 setWindowOpacity(0.5); //设置窗口的透明度
 
 showColon = true;
 
 this->setDigitCount(8);
 resize(150, 100);
 
 updateTime();
 
 
 setAttribute(Qt::WA_DeleteOnClose);
}
 
void NumClock::mousePressEvent(QMouseEvent *event)
{
 if(event->button() == Qt::LeftButton){
  mouseOfPonit = event->globalPos() - this->pos();
  event->accept();
 }else{
  close();
 }
}
 
void NumClock::mouseMoveEvent(QMouseEvent *event)
{
 if(event->buttons() & Qt::LeftButton){
  move(event->globalPos() - mouseOfPonit);
  event->accept();
 }
}
 
void NumClock::updateTime()
{
 QString timeStr = QTime::currentTime().toString("hh:mm:ss");
 if(showColon){
  timeStr = timeStr.replace(QString(":"), QString(" "));
  qDebug() << timeStr;
  showColon = false;
 }else{
  timeStr = timeStr.replace(QString(" "), QString(":"));
  showColon = true;
  qDebug() << timeStr;
 }
 display(timeStr);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C/C++ INI文件操作实现代码

    C/C++ INI文件操作实现代码

    本文章主要为分享C/C++ INI文件操作实现代码,增加注释和修复了一些问题。这里给出完整的实现文件,在需要的地方包含该头文件就好了
    2020-02-02
  • C++中的整型

    C++中的整型

    这篇文章我们来聊聊C++中的整型,整型即整数,与小数对应。许多语言只能表示一种整型(如Python),而在C++当中根据整数的范围提供了好几种不同的整型,下面文章我们就来看看具体是哪几种,需要的朋友也可以参考一下
    2021-11-11
  • C++设计模式之访问者模式

    C++设计模式之访问者模式

    这篇文章主要介绍了C++设计模式之访问者模式,本文讲解了什么是访问者模式、访问者模式的UML类图、访问者模式的实现代码等内容,需要的朋友可以参考下
    2014-10-10
  • C++获取特定进程CPU使用率的实现代码

    C++获取特定进程CPU使用率的实现代码

    写一个小程序在后台记录每个进程的CPU使用情况,揪出锁屏后占用CPU的进程,于是自己写了一个C++类CPUusage,方便地监视不同进程的CPU占用情况。本人编程还只是个新手,如有问题请多多指教
    2019-04-04
  • Qt+Quick实现图片演示器的开发

    Qt+Quick实现图片演示器的开发

    这篇文章主要为大家详细介绍了Qt如何利用Quick实现图片演示器的开发,文中的示例代码讲解详细,对我们学习Qt有一定的帮助,需要的可以参考一下
    2023-01-01
  • C语言实现简单学生学籍管理系统

    C语言实现简单学生学籍管理系统

    这篇文章主要为大家详细介绍了C语言实现简单学生学籍管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 深度理解c++中的this指针

    深度理解c++中的this指针

    这篇文章主要介绍了C++编程指向成员的指针以及this指针的基本使用指南,与C语言一样,存储的数值被解释成为内存里的一个地址,需要的朋友可以参考下。
    2016-07-07
  • win32使用openfilename浏览文件窗口示例

    win32使用openfilename浏览文件窗口示例

    这篇文章主要介绍了使用win32 API打开浏览文件窗口,使用OPENFILENAME结构体来实现这个功能,需要的朋友可以参考下
    2014-02-02
  • FFmpeg中avfilter模块的介绍与使用

    FFmpeg中avfilter模块的介绍与使用

    FFmpeg中的libavfilter模块(或库)用于filter(过滤器), filter可以有多个输入和多个输出,下面就跟随小编一起简单学习一下它的巨日使用吧
    2023-08-08
  • C++中将string类型转化为int类型

    C++中将string类型转化为int类型

    本文主要介绍了C++中将string类型转化为int类型的方法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论