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);
}

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

(0)

相关推荐

  • PyQt5使用QTimer实现电子时钟

    本文用 PyQt5 的QTimer类的两种方式实现电子时钟,供大家参考,具体内容如下 [效果图] [知识点] QTimer类提供了定时器信号/槽和单触发定时器. 它在内部使用定时器事件来提供更通用的定时器. QTimer很容易使用:创建一个QTimer,使用start()来开始并且把它的timeout()连接到适当的槽.当这段时间过去了,它将会发射timeout()信号. [实现] 1.定时器信号/槽方式 class MyTimer(QWidget): def __init__(self, pa

  • QTimer与QTime实现电子时钟

    本文实例为大家分享了QTimer与QTime实现电子时钟的具体代码,供大家参考,具体内容如下 使用QLCDNumber控件进行显示 QLCDNumber控件默认只显示5个字符,可以使用setDigitCount(int size)进行设置显示个数 使用Display(QString str) 设置显示内容 该函数拥有多个重载,字符 整型 浮点型都可以作为参数 效果图: 代码:头文件 #include <QLCDNumber> class NumClock : public QLCDNumber

  • Qt实现电子时钟的示例代码

    目录 一.项目介绍 二.项目基本配置 三.UI界面设计 四.主程序实现 4.1 添加新文件 4.2 digiclock.h头文件 4.3 digiclock.cpp源文件 4.4 main.cpp源文件 五.效果演示 一.项目介绍 利用Qt实现显示与桌面上并可以随意拖拽至桌面任意位置的电子时钟案例. 二.项目基本配置 新建一个Qt案例,项目名称为“Clock”,基类选择“QDialog”,取消创建UI界面复选框的选中状态. 三.UI界面设计 无UI界面 四.主程序实现 4.1 添加新文件 添加新

  • Qt实现电子时钟

    本文实例为大家分享了Qt实现电子时钟的具体代码,供大家参考,具体内容如下 进一步认识Qt中的属性,我们现在再做一个小练习,去实现一个简易版电子时钟的效果. 效果展示: 新建项目: 我们创建了lcdclock2类,其实是没有用到的,实际上是添加新一个C++文件来实现电子钟. 添加C++文件: 代码: clock.h #ifndef CLOCK_H #define CLOCK_H   #include <QDialog>   class clock : public QDialog {     Q

  • QT5实现电子时钟

    本文实例为大家分享了QT5实现电子时钟的具体代码,供大家参考,具体内容如下 一.电子时钟的显示 效果如下: 电子时钟显示 二.新建工程 Widgets Application项目名位clock,基础类位QDialog,取消创建UI界面的勾选框,项目名右击添加新文件 在弹出的对话框中选择“C++ Class”,Base class基础类名“QLCDNumber”,class name命名为digiclock,点击完成. 三.编辑digiclock.h文件 #ifndef DIGICLOCK_H #

  • Python+Pyqt实现简单GUI电子时钟

    本文实例为大家分享了Python+Pyqt实现简单GUI电子时钟的具体代码,供大家参考,具体内容如下 突发奇想想用GUI做一个简单的电子时钟界面,利用pyqt模块也很方便,代码如下: from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import QWidget,QApplication,QLCDNumber,QVBoxLayout,QMessageBox,QPushButton import sy

  • JavaScript电子时钟倒计时

    本文实例讲解了JavaScript电子时钟倒计时的详细代码,分享给大家供大家参考,具体内容如下 JavaScript时间类 1.获取时分秒:          getHours()          getMinutes();          getSeconds(); 2.获取年月日:          getFullYear();          getMonth() + 1;//获取的月份需要+1:          getDate(); //日期          getDay();

  • java多线程编程制作电子时钟

    模拟一个电子时钟,它可以在任何时候被启动或者停止,并可以独立的运行. 1.定义一个Clock类.它继承Label类,并实现Runnable接口.这个类中有一个Thread类型的clocker域,以及start()和run()方法.在run()方法中,每隔一秒就把系统时间显示为label的文本. class Clock extends Label implements Runnable { //定义Thread类型的clocker域 public Thread clocker=null; publ

  • JavaScript电子时钟倒计时第二款

    本文实例讲解了JavaScript电子时钟倒计时的详细代码,分享给大家供大家参考,具体内容如下 JavaScript时间类 1.获取时分秒: getHours() getMinutes(); getSeconds(); 2.获取年月日: getFullYear(); getMonth() + 1;//获取的月份需要+1: getDate(); //日期 getDay(); //获取的是星期,0-->星期天 效果图: 具体代码: <!doctype html> <html> &

  • C语言实现电子时钟程序

    本文实例为大家分享了C语言实现电子时钟程序的具体代码,供大家参考,具体内容如下 Qt 里面运行 #include<windows.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> typedef struct { int x; int y; }Point; time_t now; struct tm *pt, t1, t2; int pri

随机推荐