• Qt


     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()), this, SLOT(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?  还是那四个字:欢迎交流~~~ 

  • 相关阅读:
    nunit2.5.7 单元测试时提示:“当前不会命中断点 还没有为该文档加载任何符号”
    文件下载报错:引发类型为“System.OutOfMemoryException”的异常-.Net 内存溢出
    asp.net 访问页面访问统计实现 for iis7
    easyui tree 更改图标
    asp.net 访问页面访问统计实现
    记一次空格引起的查询问题
    SVN如何忽略dll文件和bin目录
    vmware 中安装Ghost XP 版本心得
    冒泡排序
    JS数组去重
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4496532.html
Copyright © 2020-2023  润新知