Qt - 与众不同的电子时钟

美化一下系统时钟,抛开固有控件躯壳,DIY效果让人眼前一亮,要知道细节决定UI成败。这也是我一直所追求的。
思路非常简单,就是利用label或者button贴图变化显示。
一说到贴图,有人可能就会认为代码冗余,哐哐的加载图片大坨的判断和代码量……其实贴图也讲究方法,比如我实现了一个:
getPngName(QChar x)来获取资源名称,和数字0123456789对应起来,即:资源图片名称为0.png,1.png...以此类推,所以只需要:
- QString Clock::getPngName(QChar x)
- {
- return (x+QString(".png") );
- }
就可以了。真的很简单吧……
全部代码就这么几行:
- Clock::Clock(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::Clock)
- {
- ui->setupUi(this);
- timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), this, SLOT(showTime()));
- timer->start(1000);
- showTime();
- }
- Clock::~Clock()
- {
- delete ui;
- }
- void Clock::showTime()
- {
- //lcd
- QTime time = QTime::currentTime();
- QString text = time.toString("hh:mm:ss");
- ui->lcdNumber->display(text);
- //ourclock
- ui->hourh->setIcon(QPixmap(this->getPngName(text[0])));
- ui->hourl->setIcon(QPixmap(this->getPngName(text[1])));
- ui->minh->setIcon(QPixmap(this->getPngName(text[3])));
- ui->minl->setIcon(QPixmap(this->getPngName(text[4])));
- ui->sech->setIcon(QPixmap(this->getPngName(text[6])));
- ui->secl->setIcon(QPixmap(this->getPngName(text[7])));
- }
- QString Clock::getPngName(QChar x)
- {
- return (x+QString(".png") );
- }
其实demo很简单,重点是变换显示效果的思想和手段。
Any good ideas? 还是那四个字:欢迎交流~~~
Qt - 与众不同的电子时钟的更多相关文章
- 公开课 之 tony 电子时钟 (课堂笔记)
# tony 之电子时钟from PyQt5.QtWidgets import QApplication, QWidget, QLCDNumber, QDesktopWidget, QVBoxLayo ...
- JavaScript电子时钟+倒计时
JavaScript时间类 获取时分秒: getHours() getMinutes(); getSeconds(); 获取 ...
- JS实现电子时钟
目前有个小项目,在首页头部导航栏里需要一个电子时钟的效果,于是我就采用如下代码实现了一个电子时钟的效果.不过不完美,第一种方式容易导致网页莫名其妙的异常,后来觉得可能是做的操作太多了,然后 ...
- 桌面小部件----LED电子时钟实现
桌面控件是通过 Broadcast 的形式来进行控制的,因此每个桌面控件都对应于一个BroadcastReceiver.为了简化桌面控件的开发,Android 系统提供了一个 AppWidgetPro ...
- [TPYBoard-Micropython之会python就能做硬件 3] 制作电子时钟
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板 一块 2.DS3231 ...
- 3分钟利用TurnipBit制作电子时钟
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 TurnipBit(www.turnipbit.com)是一个面向青少年的开发板 ...
- Micropython TurnipBit 电子时钟 青少年编程入门
电子时钟是一个很常用但是制作非常简单的小玩具了,对于Micropython初学者来说,制作一个电子时钟是非常简单又容易检验自己学习成果的实验了.TurnipBit相比于其他开发板,制作电子时钟就更加简 ...
- MFC桌面电子时钟的设计与实现
目录 核心技术 需求分析 程序设计 程序展示 (一)核心技术 MFC(Micosoft Foundation Class Libay,微基础类库)是微基于Windows平台下的C++类库集合,MFC包 ...
- 使用CSS3生成的电子时钟特效
在线演示 本地下载 突然觉得自己对带工作的态度亟需改正,虽然不喜欢现在的加班生活,但是自己要去接受自己不喜欢的,才能获得自己喜欢的. 这是自己好久之前丛过的一个时钟,网上应该有这个的教程,虽然实现的效 ...
随机推荐
- 关于服务器防火墙和discuz论坛的问题
今天做了一个b2b商城,其中的论坛用的是discuz论坛 .net版本,主页要取出其中三个板块的最新帖子数据,安装好后,帖子数据在dnt_posts1数据表里,其中的tid为外链表dnt_forums ...
- 关于在repeater中的checkbox实行多选和全选
今天项目中用到这一块,是一个b2b商城,业务是别人给客户留言后,客户从会员中心的留言管理中查看,用checkbox实行多选和全选后进行批量审核 首先在checkbox后加个hidden,作用见代码: ...
- ImageView的学习
学习安卓时我还是习惯看懂手册,虽然是英文但是可以获得的东西必然也是更多的,否则自己只能停留在拾人牙缝的水平,虽然我是初学,但是还是分享一些自己的学习过程及方法. 从手册中我们看以知道,ImageVie ...
- Visual Studio 2013如何破解(密钥激活)
其实有个方法最简单,就是点击“帮助”,选择注册产品,点击打开页面右下边的“使用秘钥注册产品”,输入上述秘钥即可. 在输入密钥界面,输入密钥“BWG7X-J98B3-W34RT-33B3R-JVYW ...
- 请写一个C函数,判断处理器是大端存储还是小端存储,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
[解答] int checkCPU() { { union w { int a; char b; }c; c.a=1; return (c.b==1); } } [剖析] 嵌入式系统开发者应该对Lit ...
- linux笔记2.25
解决vsftpd用root登录不了的问题 把/etc/pam.d/vsftpd文件中的 auth required pam_listfile.so item=user sense=d ...
- FileZilla 无法保存密码
当保存密码时遇到这个问题时: 解决办法: 一.找到FileZilla的设置: 二.点击"界面",取消勾选"不要保存密码",点击"确定"按钮, ...
- XML解析方式与解析工具
DOM解析原理: 1)JAXP (oracle-Sun公司官方) 2)JDOM工具(非官方) 3)Dom4J工具(非官方) 三大框架(默认读取xml的工具就是Dom4j) ....... SAX解析原 ...
- Large sum
聪明的办法是想:求前10位,那只要前8位加起来,进2位就OK. 本的办法,就是真的加起来,截前面10位.如我. numList = str.split() sum = 0 for i in range ...
- Mono Compatibility
The easiest way to describe what Mono currently supports is:Everything in .NET 4.5 except WPF, WWF, ...