广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Qt实现电子时钟
  • 666
分享到

Qt实现电子时钟

Qt电子时钟 2022-11-13 10:11:00 666人浏览 八月长安
摘要

本文实例为大家分享了Qt实现电子时钟的具体代码,供大家参考,具体内容如下 进一步认识Qt中的属性,我们现在再做一个小练习,去实现一个简易版电子时钟的效果。 效果展示: 新建项目:

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

进一步认识Qt中的属性,我们现在再做一个小练习,去实现一个简易版电子时钟的效果。

效果展示:

新建项目:

我们创建了lcdclock2类,其实是没有用到的,实际上是添加新一个c++文件来实现电子钟。

添加C++文件:

代码:

clock.h

#ifndef CLOCK_H
#define CLOCK_H
 
#include <QDialog>
 
class clock : public QDialog
{
    Q_OBJECT
 
public:
    clock(QWidget *parent = 0);
    ~clock();
};
 
#endif // CLOCK_H

这个clock文件没有啥用处,其实就是为了创建对话框存在的。

digitalclock.h

#ifndef DIGITALCLOCK_H
#define DIGITALCLOCK_H
#include<QLCDNumber>
 
class digitalclock : public QLCDNumber
{
    Q_OBJECT
public:
    digitalclock(QWidget* parent=0);
protected:
    void mousePressEvent(QMouseEvent* event);
    void mouseMoveEvent(QMouseEvent* event);
private slots:
    void showTime();
private:
    QPoint m_dragPosition;
    bool m_showColon;
};
 
#endif // DIGITALCLOCK_H

添加的digitalclock头文件添加头文件QLCDNumber,在添加元对象系统,这个是必要的。接着需要重写鼠标点击事件mousePressEvent还有mouseMoveEvent鼠标移动事件。再写一个槽函数用来显示时间,就是将时间打印到对话框里面。这里有两个私有变量一个是m_dragPosition用来保存鼠标点击点到窗口左上方的位置距离。另外有一个变量是bool类型 m_showColon用来保存冒号出现的状态,达到频闪状态。

clock.cpp

#include "clock.h"
 
clock::clock(QWidget *parent)
    : QDialog(parent)
{
}
 
clock::~clock()
{
 
}

digitalclock.cpp

#include "digitalclock.h"
#include<QMouseEvent>
#include<QDebug>
#include<QTime>
#include<QTimer>
digitalclock::digitalclock(QWidget* parent):QLCDNumber(parent)
{
 
    //设置蓝色背景
    QPalette p=palette();//palette函数返回一个调色板
    p.setColor(QPalette::Window,Qt::blue);
    setPalette(p);//将获取的调色板设置为窗体的颜色
 
    //设置边框格式
    setWindowFlags(Qt::FramelessWindowHint);
 
    //设置窗体透明度
    setWindowOpacity(0.5);
 
    QTimer* timer=new QTimer(this);
    connect(timer,&QTimer::timeout,this,&digitalclock::showTime);
    timer->start(1000);//设置计时器周期
 
    showTime();
    resize(200,100);
    m_showColon=true;
}
 
void digitalclock::mousePressEvent(QMouseEvent *event)
{
    if(event->button()==Qt::LeftButton){
        m_dragPosition=event->globalPos()-frameGeometry().topLeft();
        qDebug()<<"全局坐标:"<<event->globalPos();
        qDebug()<<"左上角坐标"<<frameGeometry().topLeft();
        event->accept();
    }else{
        close();//关闭窗口
 
    }
 
}
 
void digitalclock::mouseMoveEvent(QMouseEvent *event)
{
    if(event->buttons()==Qt::LeftButton){
 
        move(event->globalPos()-m_dragPosition);
        //移动电子时钟,move函数实际是根据窗口左上角为焦点来移动,如果不减去鼠标和左上角的偏移值,窗口会自动偏移
 
        event->accept();
    }
 
}
 
void digitalclock::showTime()
{
    QTime time=QTime::currentTime();//定义一个时间对象,获取当前的时间
    QString strTime=time.toString("hh:mm");//将时间转为字符串,并且指定格式
    if(m_showColon){
        strTime[2]=':';
    }else{
        strTime[2]=' ';
    }
    display(strTime);
    m_showColon=!m_showColon;//将冒号的显示状态设置为与之前想反,这样就达到频闪的样子
 
}

构造函数:

首先定义一个调色板对象,利用palette()函数返回一个调色板。在利用调色板的函数setColror(颜色类型,颜色);设置窗体风格函数用到setWIndowFlags();设置窗体透明度函数是setWIndowOpacity函数。紧接着再定义一个计时器QTimer.再将计时器与showTIme槽函数联系起来,每当计时器的时间到的时候就调用槽函数,之后再利用resize函数将窗口的大小重新设置。首先将冒号显示状态设置为真。

鼠标点击函数mousePreessEvent函数:

首先判断鼠标是否为左键点击,如果是那就将鼠标点击的点和窗口左上角点的距离计算出来,保存在m_dragposition。每次到函数结尾的时候一定要带上event.accept接受函数修改。

鼠标移动事件mouseMoveEvent函数:

首先判断鼠标左键是否被点击,因为通常的情况下,鼠标的移动是按左键拖动的,move函数实际是以窗口的左上方为焦点的,如果我们单纯传鼠标的全局坐标,那这样窗口的左上方会跳动到鼠标的点击点。这样就不好看,所以在传进坐标的时候,就是传鼠标点击的点减去窗口左上方相对于鼠标按下的偏移位置。

时间显示函数showTIme函数:

时间显示函数就是定义一个时间对象,利用QTime::Current函数获取当前的时间。在将时间转成指定的格式字符串,紧接着判断冒号的显示状态,将冒号根据状态设置有无。显示时间真正的函数是display函数,将时间字符串打印到窗口内。之后再将冒号状态取反,达到每个一秒频闪。

mian.cpp

#include "clock.h"
#include <QApplication>
#include"digitalclock.h"
int main(int arGC, char *argv[])
{
    QApplication a(argc, argv);
    digitalclock w;
    w.show();
 
    return a.exec();
}

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

--结束END--

本文标题: Qt实现电子时钟

本文链接: https://www.lsjlt.com/news/152134.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Qt实现电子时钟
    本文实例为大家分享了Qt实现电子时钟的具体代码,供大家参考,具体内容如下 进一步认识Qt中的属性,我们现在再做一个小练习,去实现一个简易版电子时钟的效果。 效果展示: 新建项目: ...
    99+
    2022-11-13
    Qt 电子时钟
  • Qt怎么实现电子时钟
    今天小编给大家分享一下Qt怎么实现电子时钟的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目介绍利用Qt实现显示与桌面上...
    99+
    2023-07-02
  • Qt实现电子时钟的示例代码
    目录一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1 添加新文件4.2 digiclock.h头文件4.3 digiclock.cpp源文件4.4 main.cpp源...
    99+
    2022-11-13
    Qt电子时钟 Qt 时钟
  • QT5实现电子时钟
    本文实例为大家分享了QT5实现电子时钟的具体代码,供大家参考,具体内容如下 一、电子时钟的显示 效果如下: 电子时钟显示 二、新建工程 Widgets Application项目名...
    99+
    2022-11-13
    QT5 电子时钟
  • js实现电子时钟效果
    本文实例为大家分享了js实现电子时钟效果的具体代码,供大家参考,具体内容如下 代码区域 代码如下(示例): <!DOCTYPE html> <html lang="...
    99+
    2022-11-13
    js 电子时钟
  • 原生js实现电子时钟
    本文实例为大家分享了js实现电子时钟的具体代码,供大家参考,具体内容如下 index.html <!DOCTYPE html> <html lang="en"&g...
    99+
    2022-11-13
    js 电子时钟
  • js实现电子时钟功能
    电子时钟是网上常见的功能,在学习date对象和定时器功能时,来完成一个电子时钟的制作是不错的选择。学习本教程之前,读者需要具备html和css技能,同时需要有简单的javascrip...
    99+
    2022-11-13
    js 电子时钟
  • JavaScript实现网页电子时钟
    本文实例为大家分享了JavaScript实现网页电子时钟的具体代码,供大家参考,具体内容如下 如图就是一个简易的网页电子时钟,利用Javascript和 html和 css就可以制...
    99+
    2022-11-13
    js网页电子时钟 js电子时钟 js网页时钟
  • C++实现电子时钟效果
    本文实例为大家分享了C++实现电子时钟的具体代码,供大家参考,具体内容如下 此精确到秒,因为有精度误差加上从计算机获取初始时间时处理比较简单,因此运行一段时间会出现较大的误差。 代码...
    99+
    2022-11-13
    C++ 电子时钟
  • JavaScript实现页面电子时钟
    本文实例为大家分享了JavaScript实现页面电子时钟的具体代码,供大家参考,具体内容如下 题目:页面上有一个电子时钟,显示当前的年月日,时分秒,要求自动变化,双位显示,例如:九点...
    99+
    2022-11-13
    js时钟 js电子时钟 js页面时钟
  • vue实现电子时钟效果
    本文实例为大家分享了vue实现电子时钟的具体代码,供大家参考,具体内容如下 html <div class="dateBox">       <div class...
    99+
    2022-11-13
    vue 电子时钟
  • C++怎么实现电子时钟效果
    今天小编给大家分享一下C++怎么实现电子时钟效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。此精确到秒,因为有精度误差加上...
    99+
    2023-06-30
  • JS实现电子时钟入门操作
    本文实例为大家分享了JS实现电子时钟入门操作的具体代码,供大家参考,具体内容如下 代码呈上: <!DOCTYPE html> <html lang="en">...
    99+
    2022-11-13
    js 电子时钟
  • js+html+css实现简单电子时钟
    本文实例为大家分享了js+html+css实现简单电子时钟的具体代码,供大家参考,具体内容如下 最终结果: HTML部分 <!DOCTYPE html> <htm...
    99+
    2022-11-13
    js 电子时钟
  • js如何实现电子时钟效果
    本篇内容主要讲解“js如何实现电子时钟效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js如何实现电子时钟效果”吧!代码如下(示例):<!DOCTYPE html><...
    99+
    2023-07-02
  • js怎么实现电子时钟功能
    这篇“js怎么实现电子时钟功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js怎么实现电子时钟功能”文章吧。先准备一个ht...
    99+
    2023-07-02
  • 怎么使用JS实现电子时钟
    本篇内容介绍了“怎么使用JS实现电子时钟”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码呈上:<!DOCTYPE html...
    99+
    2023-07-02
  • JavaScript如何实现页面电子时钟
    这篇文章主要介绍了JavaScript如何实现页面电子时钟的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript如何实现页面电子时钟文章都会有所收获,下面我们一起来看看吧。题目:页面上有一个电子时钟...
    99+
    2023-07-02
  • 怎么用原生js实现电子时钟
    这篇文章主要介绍“怎么用原生js实现电子时钟”,在日常操作中,相信很多人在怎么用原生js实现电子时钟问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用原生js实现电子时钟”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-02
  • 怎么使用JavaScript实现网页电子时钟
    这篇文章主要讲解了“怎么使用JavaScript实现网页电子时钟”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用JavaScript实现网页电子时钟”吧!如图就是一个简易的网页电子时钟...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作