码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • QT:画一个简单的时钟(坐标系移动、坐标系旋转、保存坐标系、恢复坐标系)


    widget.h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. #include
    5. #include
    6. class Widget : public QWidget
    7. {
    8. Q_OBJECT
    9. public:
    10. Widget(QWidget *parent = 0);
    11. ~Widget();
    12. void paintEvent(QPaintEvent *event);
    13. void timerEvent(QTimerEvent *event);
    14. private:
    15. int sec_count; //秒
    16. int min_count; //分
    17. };
    18. #endif // WIDGET_H

    widget.cpp

    1. #include "widget.h"
    2. #include
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent),sec_count(0),min_count(0)
    5. {
    6. setFixedSize(800,600);
    7. setWindowTitle("画时钟");
    8. startTimer(1000);
    9. }
    10. Widget::~Widget()
    11. {
    12. }
    13. //重写绘图事件
    14. void Widget::paintEvent(QPaintEvent *event)
    15. {
    16. QPainter p(this); //设置画布为widget
    17. /*
    18. QPoint center(width()/2,height()/2);
    19. p.drawEllipse(center,200,200); //圆心,半径
    20. p.drawLine(center,QPoint(width()/2,height()/2-150)); //y轴向上为减
    21. */
    22. p.translate(width()/2,height()/2); //将画图坐标系的原点移动到主窗口的中心位置
    23. p.drawEllipse(QPoint(0,0),200,200); //画圆
    24. p.save(); //保存画家当前的坐标系
    25. p.rotate((++sec_count)*6); //将画家的坐标系顺时针旋转6°
    26. p.drawLine(QPoint(0,0),QPoint(0,-150)); //秒针
    27. p.restore(); //恢复画家之前保存的坐标系
    28. if(sec_count%60 == 0)
    29. {
    30. ++min_count; //秒针旋转60秒,分针+1
    31. }
    32. p.rotate(min_count*6);
    33. p.drawLine(QPoint(0,0),QPoint(100,0)); //分针
    34. }
    35. void Widget::timerEvent(QTimerEvent *event)
    36. {
    37. update();
    38. }

    结果

  • 相关阅读:
    关于seata启动时连接数据库异常,Mysql版本8.0
    IEEE-754标准float类型在内存中的存储原理
    Spring Cloud Alibaba(一)
    IMS各网元的主要功能
    SQL语句-中级
    卡尔曼滤波:The Scaler Kalman Filter常量卡尔曼滤波器
    python基础
    VR全景技术在文化展示与传播中有哪些应用?
    项目实战——对战回放和排行榜
    rancher或者其他容器平台使用非root用户启动jar
  • 原文地址:https://blog.csdn.net/cxy255256/article/details/133517599
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号