QT 绘制简易时钟

news/2024/9/18 9:32:16/ 标签: qt, 开发语言

头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPainter>
#include <QTime>
#include <QTimerEvent>
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void paintEvent(QPaintEvent *event) override;private:Ui::Widget *ui;//声明 事件处理函数 重载void timerEvent(QTimerEvent *event) override;};
#endif // WIDGET_H

原文件

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->startTimer(1000);
}Widget::~Widget()
{delete ui;
}//时钟底座
void Widget::paintEvent(QPaintEvent *event)
{   QPainter painter(this);//实例化画家QPen pen;//实例化笔QFont font;//实例化字体//画笔属性pen.setWidth(5);//字体属性font.setFamily("楷体");font.setPointSize(10);//画家属性painter.setPen(pen);painter.setFont(font);painter.translate(this->width()/2,this->height()/2);//画家坐标//绘制圆painter.drawEllipse(QPoint(0,0),300,300);//绘制粗刻度painter.rotate(-60);for(int i = 0; i < 12; i++){painter.drawLine(300,0,290,0);painter.rotate(30);}//绘制细刻度pen.setWidth(2);painter.setPen(pen);painter.rotate(-24);for(int i = 0; i < 60 ; i++){painter.drawLine(300,0,295,0);painter.rotate(6);}//获取系统时间QTime time = QTime::currentTime();//绘制秒针painter.setPen(pen);painter.rotate(-6);painter.rotate(6*time.second());painter.drawLine(290,0,0,0);painter.rotate(-6*time.second());//绘制分针pen.setWidth(10);painter.setPen(pen);painter.rotate(6*time.minute());painter.drawLine(200,0,0,0);painter.rotate(-6*time.minute());//绘制时针pen.setWidth(15);painter.setPen(pen);painter.rotate(30*time.hour());painter.drawLine(100,0,0,0);qDebug()<<time.hour()<<" "<<time.minute()<<" "<<time.second();
}void Widget::timerEvent(QTimerEvent *event)
{this->update();
}

 


http://www.ppmy.cn/news/1526057.html

相关文章

【leetcode-python】最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1&#xff1a; 输入&#xff1a;nums [-1,2,1,-4], target 1 输出&#xff1a;2…

Lua闭包

前提概念 词法定界&#xff1a;当一个函数内嵌套另一个函数的时&#xff0c;内嵌函数可以访问外部函数的局部变量&#xff0c;这种特征叫做词法定界。 第一类值&#xff1a;在Lua中&#xff0c;函数是一个值&#xff0c;它可以存在于变量中、可以作为函数参数&#xff0c;也可…

Mini-Omni:语言模型可以在流中听、说和思考

读论文《Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming》 目前比较火的一篇论文&#xff0c;分享给大家 论文地址&#xff1a;2408.16725v2 (arxiv.org) 项目地址&#xff1a;https://github.com/gpt-omni/mini-omni 1. 引言 近年来&#xff0c…

人工智能与机器学习原理精解【19】

文章目录 马尔科夫链概述定义与性质分类应用领域收敛性马尔科夫链蒙特卡洛方法 马尔科夫链原理详解一、定义二、特性三、数学描述四、类型五、应用六、示例定义性质转移概率矩阵应用举例结论 马尔科夫链在语音识别和语音合成中的应用一、马尔科夫链在语音识别中的应用1. 基本概…

vue3-print打印eletable某一行的数据

主页面的表格 <template><el-table :data"list"><el-table-column label"操作" align"center"><template #default"scope"><el-buttonlinktype"primary"click"handleType(scope.row)"…

【GO开发】MacOS上搭建GO的基础环境-Hello World

文章目录 一、引言二、安装Go语言三、配置环境变量&#xff08;可跳过&#xff09;四、Hello World五、总结 一、引言 Go语言&#xff08;Golang&#xff09;因其简洁、高效、并发性强等特点&#xff0c;受到了越来越多开发者的喜爱。本文将带你一步步在Mac操作系统上搭建Go语…

uni-app获取设备唯一值、静态IP以及公网IP的方法

最近开发uniapp的时候&#xff0c;想要获取设备的唯一值作为绑定设备的序列号&#xff0c;还有手动设置的IP以及联网后的公网ip&#xff0c;在插件市场找到一个插件&#xff0c;非常适合&#xff0c;链接如下&#xff1a;lrw-getip-getid&#xff0c;特意在此记录一下&#xff…

Golang | Leetcode Golang题解之第397题整数替换

题目&#xff1a; 题解&#xff1a; func integerReplacement(n int) (ans int) {for n ! 1 {switch {case n%2 0:ansn / 2case n%4 1:ans 2n / 2case n 3:ans 2n 1default:ans 2n n/2 1}}return }

操作系统的心脏:进程调度的基本过程

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 进程调度是操作系统中至关重要的组成部分&#xff0c;它负责决定哪个进程应该在何时使用CPU。了解计算机进行进程调度的过程和原理,对我们了解计算机以及进行多线程编程大有帮助! 在操作系统中,进程…

SpringCloud的学习,Consul服务注册与发现、分布式配置,以及 服务调用和负载均衡

介绍 Consul 是一套开源的分布式服务发现和配置管理系统&#xff0c;由 HashiCorp 公司用 Go 语言开发。 提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用&#xff0c;也可以一起使用以构建全方位的服务网格&#xff0c;…

Redis Key的过期策略

Redis 的过期策略主要是指管理和删除那些设定了过期时间的键&#xff0c;以确保内存的有效使用和数据的及时清理。 具体来说&#xff0c;Redis 有三种主要的过期策略&#xff1a;定期删除&#xff08;Scheduled Deletion&#xff09;、惰性删除&#xff08;Lazy Deletion&#…

在Excel里制作简单游戏界面

生成随机激活码 找工具箱 插入按钮 建宏 方法一&#xff1a;新建按钮的时候创建宏 方法二&#xff1a;右键->指定宏 VBA VBA代码界面 调整字体 VBA代码 Public str As String 存储激活码显示的字符 Public st As String 中间变量&#xff0c;用来替代随机数 Public ot…

连锁管理系统如何兼批发和零售 连锁收银系统如何配合做好财务

在现代零售环境中&#xff0c;信息化管理系统对连锁企业的运营至关重要。连锁管理系统通过先进的信息技术解决了批发和零售中的众多挑战&#xff0c;同时为财务管理提供了有力支持。商淘云分享如何提高连锁企业的运营效率和财务管理水平&#xff0c;大家点赞收藏。 1、统筹批发…

python-游戏自动化(二)(OpenCV图像运用基础)

OpenCV OpenCV简介 首先我们来了解一下&#xff0c;OpenCV是什么&#xff1f; OpenCV 是计算机视觉中经典的专用库&#xff0c;其支持多语言、跨平台&#xff0c;功能强大。 OpenCV现在支持与计算 机视觉和机器学习有关的多种算法&#xff0c;并且正在日益扩展…

限流,流量整形算法

写在前面 源码 。 本文看下流量整形相关算法。 目前流量整形算法主要有三种&#xff0c;计数器&#xff0c;漏桶&#xff0c;令牌桶。分别看下咯&#xff01; 1&#xff1a;计数器 1.1&#xff1a;描述 单位时间内只允许指定数量的请求&#xff0c;如果是时间区间内超过指…

苹果宣布iOS 18正式版9月17日推送:支持27款iPhone升级

9月10日消息&#xff0c;在苹果秋季发布会结束后&#xff0c; 苹果宣布将于9月17日(下周二)推送iOS 18正式版系统。 苹果官网显示&#xff0c;iOS 18正式版将兼容第二代iPhone SE及之后的所有机型&#xff0c;加上刚发布的iPhone 16系列&#xff0c;共兼容27款iPhone。 iOS 18升…

C++多态讲解

多态 多态的概念 通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态)这里重点讲运行时多态。 运行时多态 运行时多态&#xff0c;具体点就是去完成某个行为(函数)&#xff0c;可以传不同的对象就会完成不同的行为&#xff0c;就达到多种形…

Spring事务传播行为详解

在Spring框架中&#xff0c;事务管理是一个至关重要的部分&#xff0c;它确保了数据的一致性和完整性。Spring提供了灵活的事务传播行为&#xff0c;允许开发者根据具体场景选择不同的事务管理方式。本文将详细介绍Spring的七种事务传播行为&#xff0c;并通过示例代码来展示它…

RTCP协议

一、常用RTCP数据包类型 类型缩写表示解释200SR&#xff08;Sender Report&#xff09;发送端报告201RR&#xff08;Receiver Report&#xff09;接收端报告202SDES&#xff08;Source Description Items&#xff09;源点描述203BYE结束传输204APP特定应用 &#xff08;一般&a…

Acwing 区间合并

区间合并 主要思想&#xff1a;给定很多区间。若两个区间有交集&#xff0c;将二者合并成一个区间。 具体做法: 先按照区间的左端点进行排序然后遍历每个区间&#xff0c;根据不同的情况进行合并&#xff0c;有一下几种情况&#xff1a; 第一种情况&#xff0c;区间不变&…