1. #include "clock.h"
  2. CLOCK::CLOCK(QWidget *parent)
  3. : QWidget(parent)
  4. {
  5. QTimer *timer = new QTimer(this);
  6. timer->start(1000);//一秒钟
  7. connect(timer,SIGNAL(timeout()),this,SLOT(update()));
  8. QFont font;
  9. font.setPointSize(10);//字体大小设置为10
  10. setFont(font);
  11. }
  12. CLOCK::~CLOCK()
  13. {
  14. }
  15. void CLOCK::paintEvent(QPaintEvent * /* event */)
  16. {
  17. QPainter painter(this);
  18. painter.setRenderHint(QPainter::Antialiasing, true);
  19. int side = qMin(width(), height());
  20. painter.setViewport((width() - side) / 2, (height() - side) / 2,
  21. side, side);
  22. painter.setWindow(0, 0, 200, 200);/*设置(0,0)为新的坐标原点*/
  23. draw(&painter);
  24. }
  25. void CLOCK::draw(QPainter *painter)
  26. {
  27. QPen thickPen(palette().foreground(), 1.5);//设置刻度线为粗黑
  28. QPen thinPen(palette().foreground(), 0.5);//设置刻度线为灰
  29. QTime time = QTime::currentTime();
  30. painter->translate(100,100);//重新设定坐标原点
  31. painter->setRenderHint(QPainter::Antialiasing);//消锯齿
  32. painter->setBrush(Qt::red);
  33. painter->setPen(Qt::red);
  34. painter->save();//保存坐标系,防止坐标系跑偏了
  35. painter->rotate(6.0*time.second());//注意是6.0,不是6
  36. painter->drawConvexPolygon(sed,4);
  37. painter->restore();//复位之前的坐标系
  38. painter->setBrush(Qt::blue);
  39. painter->setPen(Qt::blue);
  40. painter->save();
  41. painter->rotate(6.0*(time.minute()+time.second()/60.0));
  42. painter->drawConvexPolygon(min,4);
  43. painter->restore();
  44. painter->setBrush(Qt::black);
  45. painter->setPen(Qt::black);
  46. painter->save();
  47. painter->rotate(30.0*(time.hour()+time.minute()/60.0));
  48. painter->drawConvexPolygon(hour,4);
  49. painter->restore();
  50. // //painter->drawLine(0,-98,0,-88);
  51. // for(int i=0;i<12;i++)
  52. // {
  53. // painter->rotate(30);//坐标轴旋转30度
  54. // painter->drawLine(0,-98,0,-88);
  55. // }
  56. /*画刻度还有数字*/
  57. for (int i = 1; i <=60; ++i) {
  58. painter->save();
  59. painter->rotate(6*i);//坐标轴旋转6度
  60. if (i % 5 == 0) {
  61. painter->setPen(thickPen);
  62. painter->drawLine(0, -98, 0, -82);
  63. painter->drawText(-20, -82, 40, 40,
  64. Qt::AlignHCenter | Qt::AlignTop,
  65. QString::number(i/5));
  66. } else {
  67. painter->setPen(thinPen);
  68. painter->drawLine(0, -98, 0, -88);
  69. }
  70. //painter->rotate(-DegreesPerMinute);
  71. painter->restore();
  72. }
  73. }

qt 实现钟表图标的更多相关文章

  1. Qt应用程序图标设置

    Qt应用程序图标设置 本文仅仅适用于windows下,linux等不适用. 下面说的图标,指的是程序文件的图标,而不是托盘图标或者说运行时任务栏的图标(任务栏和程序窗口的图标在windows/linu ...

  2. QT添加程序图标及窗口图标

    程序图标 材料准备 图标文件:*.ico文件,存放在源文件同一目录下,如"myapp.ico" 写入图标 向*.pro文件中,独立一行写入"RC_ICONS = *.ic ...

  3. 如何将QT的pro图标修改的更显著一些

    如何将QT的pro图标修改的更显著一些 QT的项目打开文件是pro,默认是这样的 这个白色的背景在很多文件中很不好找 所以使用工具进行相关修改. 寻找到.pro 双击修改ico 默认的这个就非常不错. ...

  4. Qt应用程序图标

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt应用程序图标     本文地址:http://techieliang.com/2017/1 ...

  5. 【Qt开发】设置Qt应用程序图标

    [Qt开发]设置Qt应用程序图标 标签:[Qt开发] 首先,准备一个图标,例如:zx.ico,并新建一个文本文档,在里面添加一行: IDI_ICON1 ICON DISCARDABLE"zx ...

  6. Qt 程序运行图标

    Qt5 添加程序图标在pro直接添加一句: RC_ICONS+=resource\appicons\app.ico resource程序代码目录下文件夹. Qt4方式 1.在工程文件夹新建一个res目 ...

  7. Qt之添加图标

    导读: 在使用Qt Creator编写完应用程序后,设置release版的应用程序图标着实困扰了不少的人.一个漂亮的图标是一个软件的脸,没有一个漂亮的图标,那么这个程序是不完整的.那么我们来看看如何设 ...

  8. QT学习之解决QT中QIcon图标不显示的问题

    第一种:图标存放目录问题 :/文件夹名称/文件名 如:文件夹为:/img   文件名为:a.png 路径:     :/img/a.png 这里注意前面的":". 第二种:编译生成 ...

  9. 【转】设置Qt应用程序图标及应用程序名

    一直以来很纠结给qt应用程序添加图标问题,在网上收过一次,但是感觉不够完整,现将自己的实现过程记录下,以便以后查看: 通过网上的例子知道qt助手中有相关说明: Setting the Applicat ...

随机推荐

  1. 常用hash函数

    常用的哈希函数   通用的哈希函数库有下面这些混合了加法和一位操作的字符串哈希算法.下面的这些算法在用法和功能方面各有不同,但是都可以作为学习哈希算法的实现的例子.   1.RS  从Robert S ...

  2. Menu学习

    本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/Unity_Menu.html using UnityEditor; using U ...

  3. 3.3.2 嵌入汇编(摘自<linux内核完全剖析>)

    内核C语言程序嵌入式汇编代码又叫内联汇编,具有输入和输出参数的嵌入汇编语句的基本格式为: ************************************************** asm( ...

  4. ASP.NET常用技术之加密解密

    在开发项目中有许多数据需要我们进行加密解密操作,这里介绍几个加密解密的方法. 一:MD5加密 MD5加密是一种单向的加密算法,它只能加密,加密后不能进行逆向解密操作,常用于数字签名和加密用户密码. 下 ...

  5. Nginx常用Rewrite伪静态法则

    信赖此刻大部门用Linux VPS的伴侣都在利用这个敏捷传布的Nginx,本日就清算一下最常见的PHP法式的Rewrite(伪静态法则). Wordpress: location / {index i ...

  6. idhttp post 上传或下载时显示进度条

    通过 idhttp 带进度条上传演示一下,下载和上传原理差不多,说明一下下面例子中的的idhttp 是动态创建的 第一步:添加一个StatusBar或者gauge 进度条,这2个都可以.我用的是 st ...

  7. C 中typedef 函数指针的使用

    类型定义的语法可以归结为一句话:只要在变量定义前面加上typedef,就成了类型定义.这儿的原本应该是变量的东西,就成为了类型. int integer;     //整型变量int *pointer ...

  8. Linux iptables 应用控制访问SSH服务

    Title:Linux iptables 应用控制访问SSH服务  --2012-02-23 17:51 今天用到了以前从来没有用到过的,iptables控制访问,只允许外部访问SSH服务(22号端口 ...

  9. iOS 定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等授权检测

    金田 iOS系统版本的不断升级的前提,伴随着用户使用设备的安全性提升,iOS系统对于App需要使用的硬件限制也越来越严格,App处理稍有不妥,轻则造成功能不可用用户还不知道,重则会造成App Cras ...

  10. iOS项目更新之升级Xcode7 & iOS9

    金田 前言      Apple 的WWDC所发布内容在给大家带来惊喜之际,给各位iOS开发的同仁却也带来了不同程度的麻烦.首先不讲新功能,就单指原来老版本的项目升级.代码升级,就是一堆问题,而且是不 ...