簡述
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"));
}
