Qt練習之自定義時鐘

2021-07-05 20:57:06 字數 1199 閱讀 7391

在qtproject中自學qt時,上面有乙個例項是編寫時鐘的,其中用到了qtimer,訊號和槽以及事件的知識,是練習qt的好例子,本人在例項上新增了秒鐘的設定,從而更加像乙個使用的時鐘錶了,下面展示一下執行結果。

下面我來和大家分享一下,具體實現,類analogclock是自定義類,它繼承於qwidget類,下面**是定義類的建構函式,在其中我定義了乙個qtimer類,並為timer物件新增了訊號和槽,槽函式update()每執行一次,都將會呼叫下面我定義的paintevent()函式(paintevent()函式是乙個虛函式,我在自定義類中實現重寫了它,函式內容將在下面為大家講到)。

一下都是paintevent()函式內容,下面定義了三個qpoint 陣列,在時鐘裡分別代表小時,分鐘,秒的走針,再定義三個qcolor物件,分別為下面小時,分鐘,秒走針

設定顏色,

獲得當前時間值,並建立了painter物件,translate()函式是將vector(dx,dy)轉換為座標系統,

下面設定畫刷和畫筆,分別畫出小時的走針和小時的刻度盤其中rotate()函式表示順時針旋轉座標系統,引數表示旋轉的角度,drawconvexpolygon()函式表示畫出凸多邊形,

下面設定畫刷和畫筆,分別畫出分鐘的走針和分鐘的刻度盤

下面是本人根據小時和分鐘新增的秒鐘的編寫,其中需要注意的是秒鐘的刻度盤的需要旋轉的角度,

以上是更具qtproject中的例項改編。

QT 自定義時鐘控制項

在qt中實現自定義的時鐘控制項並可以實現與本機時間同步。1 背景圖設定 此步根據需要新增 qpainter painter this 設定乙個背景 2 設定定時器,時間間隔為1000毫秒,並且將定時器時間與update函式關聯為訊號和槽,定時器每過乙個時間間隔傳送訊號,update作為槽函式,接到訊...

Qt之自定義QEvent

2 如何定義個事件型別。qt中提供了 static int qevent registereventtype int hint 1 用來定義程式中唯一的事件型別。4 postevent和sendevent的區別 1 sendevent使用notify 函式直接給receiver傳送事件。不支援多執行...

Qt編寫自定義控制項66 光暈時鐘

1 可設定圓弧半徑寬度 2 可設定光暈寬度 3 可設定光暈顏色 4 可設定文字顏色 5 採用動畫機制平滑進度展示時間 include ifdef quc if qt version qt version check 5,7,0 include else include endif class qde...