zoukankan      html  css  js  c++  java
  • Qt之QLCDNumber

    简述

    QLCDNumber控件用于显示一个LCD数字。

    它可以显示几乎任意大小的数字。可以显示十进制、十六进制、八进制或二进制数。很容易使用display()槽连接到数据源,这个槽可以被任何五个参数类型的数据源重载。

    当显示范围以外的数据时,就会发射overflow()信号。返回可以通过setDigitCount()来设置,但是setSmallDecimalPoint() 也会影响它。如果显示设置为十六进制、八进制或二进制,就会显示整数等效值。

    这些数字和其它符号可以显示:0/O、1、 2、 3、 4、5/S、 6、7、 8、9/g、负号、小数点、A、 B、 C、D、E、F、h、H、L、o、P、r、u、U、Y、冒号、度数符号(字符串中被指定为单引号)和空格。 QLCDNumber会将非法字符替代为空格。

    获取QLCDNumber的内容是不可能的,虽然可以通过value()来获取(返回的double类型,如果显示其他格式怎么办)。所以如果真的需要文本,建议自己存储数据。

    接口说明

    接口 描述
    setDigitCount(int numDigits) 设置所显示的位数
    setBinMode() 以二进制形式显示
    setOctMode() 以八进制形式显示
    setHexMode() 以十六进制形式显示
    setDecMode() 以十进制形式显示(默认)
    setSmallDecimalPoint(bool) 其参数设置为true或者false,决定了小数点单独站一位空间还是在两个位之间。换句话说,如果参数为true,小数点将占用比平常更少的空间
    setSegmentStyle(SegmentStyle) 改变现实数字的外观,包括:Outline、Filled、Flat
    checkOverflow(double num) 检查给定值是否可以在区域内显示(也会发射overflow()信号,可以将其连接到槽中处理)

    下面我们来实现一个更新时钟的效果。

    效果

    这里写图片描述

    QLCDNumber

    首先我们构建一个QLCDNumber对象,并设置显示位数、外观、样式等效果。

    m_pLCD = new QLCDNumber(this);
    // 设置能显示的位数
    m_pLCD->setDigitCount(25);
    // 设置显示的模式为十进制
    m_pLCD->setMode(QLCDNumber::Dec);
    // 设置显示外观
    m_pLCD->setSegmentStyle(QLCDNumber::Flat);
    // 设置样式
    m_pLCD->setStyleSheet("border: 1px solid green; color: green; background: silver;");

    定时器

    然后,构建一个定时器,每隔一秒来定时刷新QLCDNumber中的内容。

    QTimer *pTimer = new QTimer(this);
    // 设置定时间隔
    pTimer->setInterval(1000);
    connect(pTimer, SIGNAL(timeout()), this, SLOT(onTimeOut()));
    
    // 启动定时器
    pTimer->start();

    槽函数

    获取当前日期时间,显示格式为:年-月-日 时:分:秒.毫秒。

    void onTimeOut()
    {
        // 获取系统当前时间
        QDateTime dateTime = QDateTime::currentDateTime();
        // 显示的内容
        m_pLCD->display(dateTime.toString("yyyy-MM-dd HH:mm:ss.zzz"));
    }
  • 相关阅读:
    SpringMVC 通过post接收form参数或者json参数
    Web验证码图片的生成-基于Java的实现
    springmvc防止表单重复提交demo
    MyBatis多表映射demo
    mybatis配置ehcache缓存
    Oracle数据库Where条件执行顺序
    省选模拟10
    省选模拟8
    省选模拟9
    省选模拟7
  • 原文地址:https://www.cnblogs.com/itrena/p/5938363.html
Copyright © 2011-2022 走看看