QT 自定義時鐘控制項

2021-10-06 12:32:08 字數 2919 閱讀 1090

在qt中實現自定義的時鐘控制項並可以實現與本機時間同步。

1、背景圖設定(此步根據需要新增)

qpainter painter

(this);

//設定乙個背景

;

2、設定定時器,時間間隔為1000毫秒,並且將定時器時間與update函式關聯為訊號和槽,定時器每過乙個時間間隔傳送訊號,update作為槽函式,接到訊號後自動呼叫paintevent函式進行重繪。

qtimer *timer =

newqtimer

(this);

timer-

>

start

(1000);

connect

(timer,

signal

(timeout()

),this

,slot

(update()));

3、為達到較好效果,需要將座標原點從介面的左上角平移至介面中心,並進行縮放,使得繪製出的表盤位於介面中心且大小合適

painter.

setrenderhints

(qpainter::antialiasing|qpainter::textantialiasing)

;painter.

translate

(width()

/2,height()

/2);

//平移座標系原點至介面中心點

painter.

scale

(side/

300.0

,side/

300.0);

//等比例縮放

4、分步依次將時鐘的構成部分繪製出來(具體**後面附上)

drawscale

(&painter)

;//繪製刻度線

drawscalenum

(&painter)

;//繪製刻度值

drawhour

(&painter)

;//繪製時針

drawmin

(&painter)

;//繪製分針

drawsec

(&painter)

;//繪製秒針

5、獲取當前的時間

qtime time=qtime::

currenttime()

;//獲取本機當前時間

標頭檔案

#ifndef widget_h

#define widget_h

#include

qt_begin_namespace

namespace ui

qt_end_namespace

class

widget

:public qwidget

;#endif

// widget_h

原始檔

#include

"widget.h"

#include

"ui_widget.h"

#include

#include

#include

#include

#include

widget::

widget

(qwidget *parent)

:qwidget

(parent),ui

(new ui::widget)

void widget::

paintevent

(qpaintevent*event)

void widget::

drawscale

(qpainter *painter)

else

painter-

>

rotate(6

);//每畫一條刻度線將整個介面轉動6度

} painter-

>

restore()

;//進行復位

}void widget::

drawscalenum

(qpainter *painter)

painter-

>

restore()

;}void widget::

drawhour

(qpainter *painter)

void widget::

drawmin

(qpainter *painter)

void widget::

drawsec

(qpainter *painter)

widget::

~widget()

#include

"widget.h"

#include

intmain

(int argc,

char

*ar**)

資源字首為: /

參考:

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...

Qt練習之自定義時鐘

在qtproject中自學qt時,上面有乙個例項是編寫時鐘的,其中用到了qtimer,訊號和槽以及事件的知識,是練習qt的好例子,本人在例項上新增了秒鐘的設定,從而更加像乙個使用的時鐘錶了,下面展示一下執行結果。下面我來和大家分享一下,具體實現,類analogclock是自定義類,它繼承於qwidg...

Qt 自定義控制項(電池)

閒著蛋疼就做了乙個簡單的自定義電池控制項。其實想了想還挺多地方可以用的啦。效果圖。通過公有方法可修改電量,設定警戒電量,設定是否正在充電,根據需要設定漸變色,圓角,步長。public bool setvalue double v bool setminvalue double v bool setm...