c++qt day11

news2024/9/28 9:32:14

通过代码实现电子钟表

头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QPaintEvent>
#include<QDebug>
#include<QPainter>
#include<QFont>
#include<QTime>
#include<QTimer>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void paintEvent(QPaintEvent *event) override;

private:
    Ui::Widget *ui;
    int m_sec = 0;
    int m_min = 0;
    int m_hour = 0;
    QTimer *timer;
    void timeout_slot();
};
#endif // WIDGET_H

源文件

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    timer = new QTimer(this);
    timer->start(1000);//一秒钟
    connect(timer, &QTimer::timeout, this, &Widget::timeout_slot);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::paintEvent(QPaintEvent *event)
{
    //实例化画家1
    QPainter painter(this);

    //实例化一个画笔
    QPen pen;       //使用无参构造
    pen.setColor(QColor("black"));      //设置画笔颜色
    //pen.setStyle(Qt::DashDotDotLine);   //设置线型
    pen.setWidth(5);                    //设置画笔宽度

    //将画笔给画家
    painter.setPen(pen);
    //给画家安排画刷
    painter.setBrush(QBrush(QColor("skyblue")));
    //给画家偏移起始坐标点
    painter.translate(this->width()/2, this->height()/2);
    //给画家偏移坐标系
    //painter.rotate(0);          //旋转坐标系
    //画个椭圆
    painter.drawEllipse(QPoint(0,0), 200, 200);

    //画刻度线
    for(int i = 1; i <=60; ++i)
    {
        painter.save();
        painter.rotate(6*i);//坐标轴旋转6度
        if (i % 5 == 0)
        {
            painter.drawLine(0, -188, 0, -200);
            painter.drawText(QPoint(-6,-160), QString::number(i/5));
        }
        else
        {
            painter.drawLine(0, -192, 0, -200);
        }
        painter.restore();//绘制图形后复位坐标系
    }

    painter.save();
    painter.rotate(6*m_sec);
    painter.drawLine(0,0,0,-170);
    painter.restore();

    painter.save();
    painter.rotate(6*m_min);
    painter.drawLine(0,0,0,-140);
    painter.restore();

    painter.save();
    painter.rotate(30*m_hour);
    painter.drawLine(0,0,0,-110);
    painter.restore();

}

void Widget::timeout_slot()
{
    QDateTime datetime = QDateTime::currentDateTime();

    m_sec = datetime.time().second();
    m_min = datetime.time().minute();
    m_hour = datetime.time().hour();

    update();
}

主函数

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

效果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1026085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch的卷积层池化层和非线性变化 和机器学习线性回归

卷积层&#xff1a; 两个输出的情况 就会有两个通道 可以改变通道数的 最简单的神经网络结构&#xff1a; nn.Mudule就是继承父类 super执行的是 先执行父类函数里面的 forward执行的就是前向网络&#xff0c;就是往前推进的&#xff0c;当然也有反向转播&#xff0c;那就是…

基于Java的电影院管理系统设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

百度收录和权重怎么提升-网站如何获得百度权重

你是否一直苦恼于网站权重的低迷&#xff1f;不知道如何开始提升网站权重&#xff0c;缺乏优质内容更新网站。不清楚如何进行关键词优化来提升网站排名和权重。SEO是一个需要持续投入时间和资源的过程。每个网站的情况都会有所不同&#xff0c;因此所花费的时间也会有所差异。然…

蓝桥杯 题库 简单 每日十题 day6

01 删除字符 题目描述 给定一个单词&#xff0c;请问在单词中删除t个字母后&#xff0c;能得到的字典序最小的单词是什么&#xff1f; 输入描述 输入的第一行包含一个单词&#xff0c;由大写英文字母组成。 第二行包含一个正整数t。 其中&#xff0c;单词长度不超过100&#x…

网络编程day03(UDP中的connect函数、tftp)

今日任务&#xff1a;tftp的文件上传下载&#xff08;服务端已经准备好&#xff09; 服务端&#xff08;已上传&#xff09; 客户端&#xff1a; 代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h…

全球南方《乡村振兴战略下传统村落文化旅游设计》许少辉八一新枝——2023学生开学季辉少许

全球南方《乡村振兴战略下传统村落文化旅游设计》许少辉八一新枝——2023学生开学季辉少许

QT实现简易时钟

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent> #include <QDebug> #include <QPainter> #include <QTimerEvent> #include <QTimer> #include <QTime>QT_BEGIN_NAMESPACE namespace Ui { cl…

51单片机项目(13)——基于51单片机的智能台灯protues仿真

本次设计&#xff0c;使用protues软件进行仿真&#xff0c;详情如下&#xff1a; 1.输入部分:由热释电红外传感器、光敏传感器、超声波测距传感器所构成的子电路组成。 2.输出模块:由1602液晶显示及其蜂鸣器报警系统组成。 3.中央处理器:主要有AT89C52单片机构成。 4.工作过…

C++ PrimerPlus 复习 第八章 函数探幽

第一章 命令编译链接文件 make文件 第二章 进入c 第三章 处理数据 第四章 复合类型 &#xff08;上&#xff09; 第四章 复合类型 &#xff08;下&#xff09; 第五章 循环和关系表达式 第六章 分支语句和逻辑运算符 第七章 函数——C的编程模块&#xff08;上&#xff…

一、Stable Diffusion WebUI 安装

Mac 配置 类别配置机型Macbook pro m2核总数12 核中央处理器、38 核图形处理器和 16 核神经网络引擎内存64 G系统Sonoma 安装 Homebrew 打开终端执行&#xff08;使用了国内镜像源安装&#xff09; /bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/r…

深入理解HttpSecurity的设计

文章目录 HttpSecurity的应用HttpSecurity的类图结构SecurityBuilder接口AbstractConfiguredSecurityBuilderadd方法doBuild方法 HttpSecurity HttpSecurity的应用 在上文介绍了基于配置文件的使用方式以及实现细节&#xff0c;如下&#xff1a; 也就是在配置文件中通过 secur…

javascript使用正则表达式去除字符串中括号的方法

如下面的例子&#xff1a; (fb6d4f10-79ed-4aff-a915-4ce29dc9c7e1,39996f34-013c-4fc6-b1b3-0c1036c47119,39996f34-013c-4fc6-b1b3-0c1036c47169,39996f34-013c-4fc6-b1b3-0c1036c47111,2430bf64-fd56-460c-8b75-da0a1d1cd74c,39996f34-013c-4fc6-b1b3-0c1036c47112) 上面是前…

华为HCIA(六)

LACPDU中携带接口优先级&#xff0c;系统MAC地址&#xff0c;设备优先级 Mac-vlan命令是配置基于MAC地址的VLAN 二层ACL匹配源目MAC二层协议类型等 HTTP为超文本传输协议&#xff0c;用于网页访问 二层组网指的是AC与AP同在一个网段内 IPV6全球单播地址 华为OSPF内部路由…

Cesium 地球(2)-瓦片创建

Cesium 地球(2)-瓦片创建 QuadtreePrimitive代码执行4个步骤: step1: update()step2: beginFrame()step3: render()step4: endFrame() 但并不是瓦片的创建步骤。 1、创建 QuadtreeTile 基于 step3: render() step3: render()┖ selectTilesForRendering()在 selectTilesFo…

CentOS 7 制作openssl 1.1.1w 版本rpm包 —— 筑梦之路

源码下载地址&#xff1a; https://www.openssl.org/source/openssl-1.1.1w.tar.gz 参考之前的文章&#xff1a; openssl 1.1.1L /1.1.1o/1.1.1t rpm包制作——筑梦之路_openssl的rpm包_筑梦之路的博客-CSDN博客 直接上spec文件&#xff1a; Name: openssl Version: 1.1…

《IP编址与路由:网络层的关键技术》

前言&#xff1a; 在TCP/IP协议栈中&#xff0c;网络层位于第三层&#xff0c;起到了承上启下的关键作用。它不仅负责处理来自数据链路层和传输层的请求&#xff0c;还需确保数据包的正确转发。本文将深入探讨IP编址与路由的相关知识&#xff0c;帮助您更好地理解网络层的重要性…

视觉Transformer在低级视觉领域的研究综述

视觉Transfomer的基本原理 在图像处理过程中&#xff0c;ViT首先将输入的图片分成块&#xff0c;对其进行线性的编码映射后排列成一堆的向量作为编码器的输入&#xff0c;在分类任务中会在这个一维向量加入了一个可学习的嵌入向量用作分类的类别预测结果表示&#xff0c;最后通…

Java:JSR 310日期时间体系LocalDateTime、OffsetDateTime、ZonedDateTime

JSR 310日期时间体系&#xff1a; LocalDateTime&#xff1a;本地日期时间OffsetDateTime&#xff1a;带偏移量的日期时间ZonedDateTime&#xff1a;带时区的日期时间 目录 构造计算格式化参考文章 日期时间包 import java.time.LocalDateTime; import java.time.OffsetDateT…

盲水印接口,版权保护,防止篡改

添加水印&#xff0c;水印生成&#xff0c;获取水印&#xff0c;隐性水印&#xff0c;版权保护&#xff0c;防止篡改&#xff0c;数字媒体分发&#xff0c; 数字取证&#xff0c;水印生成 一、接口介绍 通过上传原始图片和水印图,生成带有隐性水印图的图片。既保持图片的美观…

算法题必备基础技巧(C++版)

最近可能要参加秋招面试........最近还要顺便复习整理一下之前的一些技巧&#xff0c;整理归纳一下。倒不是说放弃考研了&#xff0c;而是尽可能找一个普通的工作保底吧...... 一.函数模板 模板&#xff0c;顾名思义&#xff0c;任何类型都可以套用&#xff0c;分享一个打印任…