在上一遍文章介紹載入字型庫來實現lcd顯示數字,本篇介紹使用原始碼來實現,動手自己寫原始碼。在ui下qlcdnumber控制項實現了lcd數字顯示,**該控制項的原始碼,實現自己的lcd數字顯示。
首先定義乙個類,例如「lcdnumberitem」繼承qquickpainteditem類。h檔案如下所示:主要是仿照qlcdnumber控制項
#ifndeflcdnumberitem_h
#definelcdnumberitem_h
#include
#include
classlcdnumberitem
:public
qquickpainteditem
;
q_enum(mode)
enumsegmentstyle
;
q_enum(segmentstyle)
boolsmalldecimalpoint()
const;
intdigitcount()const;
voidsetdigitcount(int
ndigits);
boolcheckoverflow(double
num)
const;
boolcheckoverflow(int
num)
const;
modemode()
const;
voidsetmode(mode);
segmentstylesegmentstyle()
const;
voidsetsegmentstyle(segmentstyle);
doublevalue()
const;
intintvalue()const;
voidpaint(qpainter
*painter);
publicq_slots:
voiddisplay(const
qstring
&str);
voiddisplay(int
num);
voiddisplay(double
num);
voidsethexmode();
voidsetdecmode();
voidsetoctmode();
voidsetbinmode();
voidsetsmalldecimalpoint(bool);
signals:
voidoverflow();
publicslots:
private:
voidinit();
voidinternalsetstring(const
qstring&s);
voiddrawstring(const
qstring&s,
qpainter
&,qbitarray
*=0,
bool
=true);
voiddrawdigit(const
qpoint
&,qpainter
&,int,
char,
char='
');
voiddrawsegment(const
qpoint
&,char,
qpainter
&,int,
bool
=false);
private:
in***igits;
doubleval;
uintbase
:2;
uintsmallpoint
:1;
uintfill
:1;
uintshadow
:1;
qstringdigitstr;
qbitarraypoints;
};
#endif實現檔案基本和qlcdnumber控制項差不多,本人還在完善中,爭取實現更換顏色。在使用之前要註冊一下://lcdnumberitem_h
qmlregistertype("lcdnumberitem",
1,0,
"lcdnumberitem");
初步顯示效果如下:
用prctl給執行緒命名 原始碼實現
分類 linux 系統程式設計 對於多執行緒應用程式,如果能夠給每個執行緒命名,那麼除錯起來的便利是不言而喻的。可以用prctl給程序內其它執行緒命名的介面,測試 如下 include include include include void pfunc void arg int main void...
用c語言實現讀取配置檔案原始碼
思路 比如linux中,以 或 表示注釋,以 表示賦值。從conf裡一行一行讀出來,如果第乙個字母是 就忽略 否則就從 line of file 裡查詢 字元,去掉行末 n 換行符 之前的就是引數名,之後的就是引數值 去掉空格,tab 用strncpy 實現 define crt secure no...
原始碼和文件分享 基於QT實現的數獨遊戲
1 簡介 sudoku 是一款利用 qt 實現的數獨遊戲,提供了多達 10 個難度的關卡選擇,同時還有豐富的功能來幫助玩家更加高效地求解數獨問題,例如候選數 高亮相同數字 高亮選中的行列 撤銷當前操作以及提示等功能。玩家還可以手動輸入數獨題目利用 sudoku 幫助求解。除了傳統 9 9 的數獨遊戲...