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. How to Install Tomcat

    Read:http://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html

  2. SqlServer 查看数据库锁,解除锁,此种情况一般常见都是由于事务所造成

    检查数据库锁 SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableNameFROM sys.dm ...

  3. 禁止Windows远程桌面拷贝文件

    通过组策略,我们可以解决以上问题,开始菜单运行输入gpedit.msc,进入“计算机配置”项,按顺序进入“管理模板”.“windows组件”.“终端服务”.“客户端/服务器数据重定向”.在详细描述栏中 ...

  4. 学习OpenSeadragon之三 (覆盖层Overlayer的使用)

    Overlayer(覆盖层)是一个很重要的机制,它可以在可缩放图片上显示额外的信息. 1.简单应用 以下是我做出的一个小例子: 看这小老鼠头部的红色框内的部分就是一个分离出来的overlay. 介绍一 ...

  5. Android自定义扁平化对话框

    平时我们开发的大多数的Android.iOS的APP,它们的风格都是拟物化设计.如今Android 4.X.iOS 7.WP8采用的是扁平化设计,可以看出扁平化设计是未来UI设计的趋势.其实扁平化设计 ...

  6. CSS分别设置Input样式(按input类型)

    当你看到<input>这个html标签的时候,你会想到什么?一个文本框?一个按钮?一个单选框?一个复选框?……对,对,对,它们都对.也许你可能想不到,这个小小的input竟然可以创造出10 ...

  7. [转] JS运算符 &&和|| 及其优先级

    第一.&& (逻辑与)运算,看一个简单的例子: var a = 1 && 2 && 3; var b = 0 && 1 &&am ...

  8. angular controller js 压缩后报错解决方案

    简单介绍下ng-annotate这个项目,这个项目正好提供了gulp的插件. gulp配置文件: var gulp = require('gulp'); var ngAnnotate = requir ...

  9. 简单讲解iOS应用开发中的MD5加密的相关使用

      简单讲解iOS应用开发中的MD5加密的相关使用   作者:文顶顶 字体:[增加 减小] 类型:转载 时间:2015-12-19 我要评论 这篇文章主要介绍了iOS应用开发中的MD5加密的相关使用, ...

  10. GET异步 请求图片步骤

    - (IBAction)getImage:(id)sender { //1,准备URL NSString *str = @"http://e.hiphotos.baidu.com/image ...