news 2026/7/6 22:54:51

用QT绘制一个简单的时钟

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用QT绘制一个简单的时钟

定义时钟类AnalogClock.h

#ifndef ANALOGCLOCK_H #define ANALOGCLOCK_H #include <QWidget> class AnalogClock : public QWidget { Q_OBJECT public: AnalogClock(QWidget *parent = nullptr); ~AnalogClock(); protected: void paintEvent(QPaintEvent *event); }; #endif // ANALOGCLOCK_H

实现时钟类

#include "analogclock.h" #include<QTimer> #include <QTime> #include <QPainter> AnalogClock::AnalogClock(QWidget *parent) : QWidget(parent) { QTimer *timer = new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(update())); timer->start(1000); setWindowTitle(tr("Analog Clock")); resize(200,200); } AnalogClock::~AnalogClock() { } void AnalogClock::paintEvent(QPaintEvent *event) { static const QPoint hourHand[3] = { QPoint(7,8), QPoint(-7,8), QPoint(0,-40) }; static const QPoint minuteHand[3] = { QPoint(7,8), QPoint(-7,8), QPoint(0,-70) }; QColor hourColor(127,0,127); QColor minuteColor(0,127,127,191); int side = qMin(width(),height()); QTime time = QTime::currentTime(); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.translate(width()/2,height()/2); painter.scale(side / 200.0,side / 200.0); painter.setPen(Qt::NoPen); painter.setBrush(hourColor); painter.save(); painter.rotate(30.0*((time.hour() + time.minute() / 60.0))); painter.drawConvexPolygon(hourHand,3); painter.restore(); painter.setPen(hourColor); for(int i = 0;i < 12;i++){ painter.drawLine(88,0,96,0); painter.rotate(30.0); } painter.setPen(Qt::NoPen); painter.setBrush(minuteColor); painter.save(); painter.rotate(6.0 * (time.minute() + time.second() / 60.0)); painter.drawConvexPolygon(minuteHand,3); painter.restore(); painter.setPen(minuteColor); for(int j = 0;j < 60;j++){ if((j % 5) != 0) painter.drawLine(92,0,96,0); painter.rotate(6.0); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/29 17:02:23

如何快速解锁网易云NCM文件:ncmdumpGUI一站式解决方案

如何快速解锁网易云NCM文件&#xff1a;ncmdumpGUI一站式解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐下载的NCM格式文件无法在其…

作者头像 李华
网站建设 2026/7/1 19:23:54

3分钟搞定网易云NCM格式转换:ncmdumpGUI终极使用指南

3分钟搞定网易云NCM格式转换&#xff1a;ncmdumpGUI终极使用指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐下载的NCM格式文件无法在其他…

作者头像 李华
网站建设 2026/6/24 21:10:34

MGeo定制化改造:修改源码适配特定行业地址命名规则

MGeo定制化改造&#xff1a;修改源码适配特定行业地址命名规则 引言&#xff1a;为何需要定制化地址相似度模型&#xff1f; 在实体对齐、数据融合和地址去重等场景中&#xff0c;地址相似度计算是关键环节。阿里云开源的 MGeo 模型专为中文地址领域设计&#xff0c;基于大规模…

作者头像 李华
网站建设 2026/7/6 6:49:58

司法系统应用:MGeo统一法院文书中的当事人住址信息

司法系统应用&#xff1a;MGeo统一法院文书中的当事人住址信息 在司法信息化建设不断推进的背景下&#xff0c;法院文书中涉及的当事人信息标准化成为提升案件管理效率、支持智能审判和跨区域数据共享的关键环节。其中&#xff0c;当事人住址信息由于书写格式多样、表述不规范&…

作者头像 李华
网站建设 2026/6/21 22:33:48

自动化数据管道:MGeo集成ETL流程实现定时匹配

自动化数据管道&#xff1a;MGeo集成ETL流程实现定时匹配 在地理信息处理、用户地址管理、物流系统等实际业务场景中&#xff0c;地址数据的标准化与实体对齐是构建高质量数据底座的关键环节。由于中文地址存在表述多样、缩写习惯不一、层级嵌套复杂等问题&#xff08;如“北京…

作者头像 李华
网站建设 2026/7/2 3:56:08

安全性提醒:限制MGeo服务接口防恶意刷请求

安全性提醒&#xff1a;限制MGeo服务接口防恶意刷请求 背景与问题提出 随着地理信息数据在电商、物流、智慧城市等领域的广泛应用&#xff0c;地址相似度匹配技术成为实体对齐的关键能力。MGeo作为阿里开源的中文地址语义理解工具&#xff0c;在“地址相似度识别”任务中表现出…

作者头像 李华