Qt之QLCDNumber


簡述

QLCDNumber控件用於顯示一個LCD數字。

它能夠顯示差點兒隨意大小的數字。

能夠顯示十進制、十六進制、八進制或二進制數。非常easy使用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"));
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM