Qt:模拟时钟

Qt:模拟时钟nbsp nbsp nbsp nbsp Qt 中有一个模拟时钟的例题 其主要实现的功能只有时针和分针 以及时钟的那些刻度线 博主在其基础上多增加了秒针 以及数字的显示 同时 对其中小部分进行修改 本例题主要是了解和练习使用 QTimer 类 本例题属于还是比较简单的 代码量也是很少 具体的代码和解释可以查看 git 基本知识点都有注释 https github com Iconzjy Qt Example git 中的 an

       Qt中有一个模拟时钟的例题,其主要实现的功能只有时针和分针,以及时钟的那些刻度线。博主在其基础上多增加了秒针,以及数字的显示。同时,对其中小部分进行修改。本例题主要是了解和练习使用QTimer类。本例题属于还是比较简单的,代码量也是很少。具体的代码和解释可以查看git(基本知识点都有注释):“https://github.com/Iconzjy/Qt-Example.git中的analogclock。最终实现效果如图:

Qt:模拟时钟

本程序先创建一个Non-Qt Project项目,在pro文件内添加QT+=widgets,接着创建main.cpp以及AnalogClock类。一下就先讲解主要的代码。

AnalogClock类的构造函数实现

AnalogClock::AnalogClock(QWidget *parent) : QWidget(parent) { //计时器timer QTimer *timer = new QTimer(this); //timeout() 是QTimer中的一个私有非静态函数,不能由用户自己发出 connect (timer, SIGNAL(timeout()), this, SLOT(update())); connect (timer, SIGNAL(timeout()), this, SLOT(timeChange())); //启动或重新启动计时器,函数参数单位为毫秒, timer->start(1000); setWindowTitle (tr("Analog Clock")); resize (400,200); //获取当前时间 QTime time = QTime::currentTime(); //设置label的布局 //具体怎么布局看个人需要了,这里只是简单的显示下。 QVBoxLayout* layout=new QVBoxLayout; QString text = time.toString (); label = new QLabel(); label->setText (text); layout->addWidget (label); layout->setAlignment (label,Qt::AlignVCenter); this->setLayout (layout); }

其中connect (timer, SIGNAL(timeout()), this, SLOT(timeChange()));的作用是显示数字的时间。效果如图:Qt:模拟时钟

 

在虚函数void AnalogClock::paintEvent(QPaintEvent* /*event*/)中,多添加for循环的第三行就可以实现1-12这12个数的显示了。

 //画时钟边界上每5小格的刻度线,设置数字 for(int i = 0; i < 12; ++i){ painter.drawLine (0,88,0,96); painter.rotate(30.0); painter.drawText(-3,-80,tr("%1").arg(i+1)); }

 

秒针的实现和时针,分针的实现基本一样,就不再写了。

具体的代码和解释请自行到链接里下载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224253.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:21
下一篇 2026年3月17日 下午12:21


相关推荐

  • 详解 DOMContentLoaded

    详解 DOMContentLoaded详解 DOMContentLo 首先我们先直观地感受下什么是 DOMContentLo 打开 ChromeDevToo 切到 Network 面板 重新加载网页 得到如下截图 标记 1 指向的蓝线以及标记 2 指向的蓝色字 DOMContentLo 1 29s 均表示 DOMContentLo

    2026年3月17日
    2
  • 👩‍💻小白必看!Cursor开发网站本地部署超详细攻略,拯救你的编程之旅!

    👩‍💻小白必看!Cursor开发网站本地部署超详细攻略,拯救你的编程之旅!

    2026年3月16日
    3
  • php soapclient出错,PHP7 SoapClient问题

    php soapclient出错,PHP7 SoapClient问题我最近从 PHP5 4 升级到 PHP7 男孩是一个改变 但这是不重要的 自升级以来 我遇到了 SoapService 的问题 这是我的 SoapRequest 在 PHP5 4 上的样子 redactedreda sha1 redacted createdgt201 07 26createdlt2 07 27responseeq 以下是在 P

    2026年3月18日
    3
  • SSM项目完整源码[通俗易懂]

    〇.项目源码https://gitee.com/ZXAcademy/…相比较于此文,如上项目源码做了如下修改:新增数据库脚本(database目录下)调整数据库列名(PaperMapper.xml中)修改了一处BUG(主页,修复了点击更改按钮后,update页面的输入框不显示旧数据)项目演示见本文第三章。一、项目框架.二、项目源码.三、项目演示.

    2022年4月4日
    57
  • 单片机红外传感器_基于51单片机的声音传感器

    单片机红外传感器_基于51单片机的声音传感器一、背景介绍我们工作久了,久坐导致的毛病就显现出来了,腰酸背痛颈椎疼,最近看到利用番茄钟工作法挺好,工作25分钟,休息5分钟,既能调整工作节奏,避免精力过分消耗,也能避免久坐导致的身体问题。我刚开始使用闹钟做提醒,后来尝试番茄钟软件,但是都要手动去操作手机,拿起手机看到信息,然后就会去处理手机上的事情了,起不到作用…直到有一天收拾东西看到了我大学期间基于51单片机做的一个电子设计,激起了我的灵感,开始了基于51单片机的自动番茄钟,久坐提醒神器的设计和制作。整体方案硬件部分继承了大学时焊接的电路板,更

    2026年4月20日
    3
  • DOS攻击与防御_xss攻击与防御

    DOS攻击与防御_xss攻击与防御DOS攻击概念DOS:DenialofSerivce拒绝服务攻击内因:网络安全协议的安全缺陷外因:利益驱使的蓄意行为偶然的DOS攻击原理攻击原理:利用合理的请求占用过多的服务资源,使得服务超载,无法响应正常的服务请求.网络带宽文件系统的空间容开放的进程允许的连接DOS攻击方法1.耗尽计算机资源,如带宽,内存,磁盘空间,处理器时间.2.破坏配置信息,如路由信息.3…

    2022年10月1日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号