加载中…
个人资料
来一桶
来一桶
  • 博客等级:
  • 博客积分:0
  • 博客访问:7,582
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

Qt - 与众不同的电子时钟

(2012-03-15 22:19:19)
标签:

杂谈

Qt的电子时钟是个老掉牙的demo了,但是利用lcdNumber显示的样子非常老土(下图第一个显示效果),一看就知道是从qt帮助文档里摘出来的example,毫无新意。



    

       美化一下系统时钟,抛开固有控件躯壳,DIY效果让人眼前一亮,要知道细节决定UI成败。这也是我一直所追求的。

       思路非常简单,就是利用label或者button贴图变化显示。


       一说到贴图,有人可能就会认为代码冗余,哐哐的加载图片大坨的判断和代码量……其实贴图也讲究方法,比如我实现了一个:

getPngName(QChar x)来获取资源名称,和数字0123456789对应起来,即:资源图片名称为0.png,1.png...以此类推,所以只需要:


  1. QString Clock::getPngName(QChar x)  
  2.  
  3.      return (x+QString(".png");  
  4.  



就可以了。真的很简单吧……

全部代码就这么几行:


  1. Clock::Clock(QWidget *parent)  
  2.     QWidget(parent),  
  3.     ui(new Ui::Clock)  
  4.  
  5.     ui->setupUi(this);  
  6.   
  7.      
  8.     timer new QTimer(this);  
  9.     connect(timer, SIGNAL(timeout()), thisSLOT(showTime()));  
  10.     timer->start(1000);  
  11.     showTime();  
  12.  
  13.   
  14. Clock::~Clock()  
  15.  
  16.     delete ui;  
  17.  
  18.   
  19. void Clock::showTime()  
  20.  
  21.     //lcd   
  22.     QTime time QTime::currentTime();  
  23.     QString text time.toString("hh:mm:ss");  
  24.   
  25.     ui->lcdNumber->display(text);  
  26.   
  27.     //ourclock   
  28.     ui->hourh->setIcon(QPixmap(this->getPngName(text[0])));  
  29.     ui->hourl->setIcon(QPixmap(this->getPngName(text[1])));  
  30.     ui->minh->setIcon(QPixmap(this->getPngName(text[3])));  
  31.     ui->minl->setIcon(QPixmap(this->getPngName(text[4])));  
  32.     ui->sech->setIcon(QPixmap(this->getPngName(text[6])));  
  33.     ui->secl->setIcon(QPixmap(this->getPngName(text[7])));  
  34.   
  35.   
  36.  
  37.   
  38. QString Clock::getPngName(QChar x)  
  39.  
  40.      return (x+QString(".png");  
  41.  



其实demo很简单,重点是变换显示效果的思想和手段。

Any good ideas?  还是那四个字:欢迎交流~~~ 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有