qt 实现钟表图标
- #include "clock.h"
- CLOCK::CLOCK(QWidget *parent)
- : QWidget(parent)
- {
- QTimer *timer = new QTimer(this);
- timer->start(1000);//一秒钟
- connect(timer,SIGNAL(timeout()),this,SLOT(update()));
- QFont font;
- font.setPointSize(10);//字体大小设置为10
- setFont(font);
- }
- CLOCK::~CLOCK()
- {
- }
- void CLOCK::paintEvent(QPaintEvent * /* event */)
- {
- QPainter painter(this);
- painter.setRenderHint(QPainter::Antialiasing, true);
- int side = qMin(width(), height());
- painter.setViewport((width() - side) / 2, (height() - side) / 2,
- side, side);
- painter.setWindow(0, 0, 200, 200);/*设置(0,0)为新的坐标原点*/
- draw(&painter);
- }
- void CLOCK::draw(QPainter *painter)
- {
- QPen thickPen(palette().foreground(), 1.5);//设置刻度线为粗黑
- QPen thinPen(palette().foreground(), 0.5);//设置刻度线为灰
- QTime time = QTime::currentTime();
- painter->translate(100,100);//重新设定坐标原点
- painter->setRenderHint(QPainter::Antialiasing);//消锯齿
- painter->setBrush(Qt::red);
- painter->setPen(Qt::red);
- painter->save();//保存坐标系,防止坐标系跑偏了
- painter->rotate(6.0*time.second());//注意是6.0,不是6
- painter->drawConvexPolygon(sed,4);
- painter->restore();//复位之前的坐标系
- painter->setBrush(Qt::blue);
- painter->setPen(Qt::blue);
- painter->save();
- painter->rotate(6.0*(time.minute()+time.second()/60.0));
- painter->drawConvexPolygon(min,4);
- painter->restore();
- painter->setBrush(Qt::black);
- painter->setPen(Qt::black);
- painter->save();
- painter->rotate(30.0*(time.hour()+time.minute()/60.0));
- painter->drawConvexPolygon(hour,4);
- painter->restore();
- // //painter->drawLine(0,-98,0,-88);
- // for(int i=0;i<12;i++)
- // {
- // painter->rotate(30);//坐标轴旋转30度
- // painter->drawLine(0,-98,0,-88);
- // }
- /*画刻度还有数字*/
- for (int i = 1; i <=60; ++i) {
- painter->save();
- painter->rotate(6*i);//坐标轴旋转6度
- if (i % 5 == 0) {
- painter->setPen(thickPen);
- painter->drawLine(0, -98, 0, -82);
- painter->drawText(-20, -82, 40, 40,
- Qt::AlignHCenter | Qt::AlignTop,
- QString::number(i/5));
- } else {
- painter->setPen(thinPen);
- painter->drawLine(0, -98, 0, -88);
- }
- //painter->rotate(-DegreesPerMinute);
- painter->restore();
- }
- }
qt 实现钟表图标的更多相关文章
- Qt应用程序图标设置
Qt应用程序图标设置 本文仅仅适用于windows下,linux等不适用. 下面说的图标,指的是程序文件的图标,而不是托盘图标或者说运行时任务栏的图标(任务栏和程序窗口的图标在windows/linu ...
- QT添加程序图标及窗口图标
程序图标 材料准备 图标文件:*.ico文件,存放在源文件同一目录下,如"myapp.ico" 写入图标 向*.pro文件中,独立一行写入"RC_ICONS = *.ic ...
- 如何将QT的pro图标修改的更显著一些
如何将QT的pro图标修改的更显著一些 QT的项目打开文件是pro,默认是这样的 这个白色的背景在很多文件中很不好找 所以使用工具进行相关修改. 寻找到.pro 双击修改ico 默认的这个就非常不错. ...
- Qt应用程序图标
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt应用程序图标 本文地址:http://techieliang.com/2017/1 ...
- 【Qt开发】设置Qt应用程序图标
[Qt开发]设置Qt应用程序图标 标签:[Qt开发] 首先,准备一个图标,例如:zx.ico,并新建一个文本文档,在里面添加一行: IDI_ICON1 ICON DISCARDABLE"zx ...
- Qt 程序运行图标
Qt5 添加程序图标在pro直接添加一句: RC_ICONS+=resource\appicons\app.ico resource程序代码目录下文件夹. Qt4方式 1.在工程文件夹新建一个res目 ...
- Qt之添加图标
导读: 在使用Qt Creator编写完应用程序后,设置release版的应用程序图标着实困扰了不少的人.一个漂亮的图标是一个软件的脸,没有一个漂亮的图标,那么这个程序是不完整的.那么我们来看看如何设 ...
- QT学习之解决QT中QIcon图标不显示的问题
第一种:图标存放目录问题 :/文件夹名称/文件名 如:文件夹为:/img 文件名为:a.png 路径: :/img/a.png 这里注意前面的":". 第二种:编译生成 ...
- 【转】设置Qt应用程序图标及应用程序名
一直以来很纠结给qt应用程序添加图标问题,在网上收过一次,但是感觉不够完整,现将自己的实现过程记录下,以便以后查看: 通过网上的例子知道qt助手中有相关说明: Setting the Applicat ...
随机推荐
- web项目环境搭建(3):搭建Spring+MyBatis
spring 4.1.7 + MyBatis 3.3 正式开始配置关键内容,这是硬货 一. 新建spring配置文件,起名为 applicationContext.xml,放在src/main/res ...
- 武汉科技大学ACM :1005: 一二三
Problem Description 你弟弟刚刚学会写英语的一(one).二(two)和三(three).他在纸上写了好些一二三,可惜有些字母写错了.已知每个单词最多有一个字母写错了(单词长度肯定不 ...
- Dev-C++程序正确闪退问题
只需要在主函数最后一句语句上面加一句getchar();即可
- Android webview 应用
现在在android把一个网站打包成apk 是很简单的事,不懂一点代码的都可以去百度生成一个apk,app.当然样式就不是你所能控制的. 今天我就介绍一下 android 的 webview 在And ...
- ASP.NET MVC下的异步Action的定义和执行原理
一.基于线程池的请求处理ASP.NET通过线程池的机制处理并发的HTTP请求.一个Web应用内部维护着一个线程池,当探测到抵达的针对本应用的请求时,会从池中获取一个空闲的线程来处理该请求.当处理完毕, ...
- OpenStack JEOS 镜像
JEOS:Just Enough Operating System 维基百科地址:http://en.wikipedia.org/wiki/Just_enough_operating_system O ...
- php处理字符串格式的计算公式
有时候我们对每一种产品都有一个提成公式,而这个计算提成的公式是以字符串格式存在表中的 当我们用这个计算公式时,他并不像我们写的:$a=2+3*5;这样简单的能计算出结果,而它是个字符串 所以,我们就必 ...
- 07 - 删除vtkDataObject中的SetExtentTranslator 和 GetExtentTranslator方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的两个方法就是SetExtentTranslator() 和 GetExtentTranslator( ...
- 转:支撑Github的开源技术
原文来自于:http://www.infoq.com/cn/news/2014/03/projects-power-github Github在3月19号开放了新的项目展示页面(Showcase),S ...
- 让自己的C++程序(非服务程序)运行为一个windows service
因为项目的一些变化和原因,需要把数据处理的一个后台程序创建为一个windows服务,运行以下命令能创建成功: sc create "MyApp Service Name" binP ...