Qt開發 Qt Widgets模組 QDial類

2021-08-21 04:04:41 字數 2910 閱讀 1020

qdial類提供了乙個四捨五入的範圍控制(如速度計或電位計)。

當使用者需要在程式可定義的範圍內控制乙個值時使用qdial,並且範圍可以環繞(例如,角度從0度到359度測量),或者對話方塊布局需要乙個方形控制項。

在滑塊移動時,撥號盤最初會連續發出valuechanged()訊號; 您可以通過禁用跟蹤屬性來減少發射訊號的頻率。 即使禁用跟蹤,也會連續發出slidermoved()訊號。

當按下並釋放滑鼠按鈕時,撥號也會發出sliderpressed()和sliderreleased()訊號。 請注意,由於鍵盤和滾輪也可用於更改數值,因此表盤的數值可能會發生變化,而不會發出這些訊號。

與滑塊不同,qdial試圖繪製乙個「好」數量的凹槽,而不是每行乙個。 如果可能,繪製的凹槽數量是每行一步,但如果沒有足夠的畫素來繪製每乙個畫素,qdial將跳過凹槽嘗試繪製乙個統一集合(例如,通過繪製每秒或三次凹槽)。

與滑塊一樣,表盤使qabstractslider函式setvalue()可用作插槽。

表盤的鍵盤介面非常簡單:左/上和右/下箭頭鍵通過定義的pagestep定義的singlestep,page up和page down調整撥號值,home和end鍵將值設定為定義的最小值 和最大值。

如果使用滑鼠滾輪調整刻度盤,則增量值由wheelsrollline的較小值(由singlestep和pagestep倍增)確定。

以各種小部件樣式顯示的撥號(從左到右):fusion,windows vista,macintosh。

一、屬性文件

1、notchsize : const int

該屬性保持當前的缺口大小。

缺口大小在範圍控制單元中,而不是畫素,並且如果可能的話,它是singlestep()的倍數,導致在notchtarget()附近的螢幕上的切口尺寸。

預設情況下,此屬性的值為1。

獲取函式;

int notchsize() const

2、notchtarget : qreal

該屬性擁有陷波之間的目標畫素數。

陷波目標是qdial嘗試在每個陷波之間放置的畫素數量。

實際尺寸可能與目標尺寸不同。

預設陷波目標是3.7畫素。

獲取函式;

qreal notchtarget() const

void setnotchtarget(double target)

3、notchesvisible : bool

該屬性保持是否顯示切口。

如果屬性為true,則在刻度盤周圍繪製一系列凹槽以指示可用值的範圍; 否則沒有顯示缺口。

預設情況下,此屬性被禁用。

獲取函式;

bool notchesvisible() const

void setnotchesvisible(bool visible)

該屬性保持是否啟用包裝。

如果為true,則開啟包裝; 否則在表盤底部插入一些空格以分隔有效值範圍的末端。

如果啟用,箭頭的方向可以是任意角度。 如果禁用,箭頭將被限制在撥號盤的上半部分; 如果它旋轉到刻度盤底部的空間中,它將被鉗位到有效值範圍的最近端。

預設情況下,該屬性為false。

獲取函式;

二、成員函式文件

1、qdial::qdial(qwidget *parent = q_nullptr)

構造乙個表盤。

父引數被傳送到qabstractslider建構函式。

2、qdial::~qdial()

銷毀表盤。

3、[virtual protected] bool qdial::event(qevent *e)

從qobject :: event()重新實現。

4、[protected] void qdial::initstyleoption(qstyleoptionslider *option) const

使用此qdial中的值初始化選項。 當他們需要qstyleoptionslider時,此方法對子類很有用,但不希望自己填寫所有資訊。

5、[virtual] qsize qdial::minimumsizehint() const

從qwidget :: minimumsizehint()重新實現。

6、[virtual protected] void qdial::mousemoveevent(qmouseevent *e)

從qwidget :: mousemoveevent()重新實現。

7、[virtual protected] void qdial::mousepressevent(qmouseevent *e)

從qwidget :: mousepressevent()重新實現。

8、[virtual protected] void qdial::mousereleaseevent(qmouseevent *e)

reimplemented from qwidget::mousereleaseevent().

9、[virtual protected] void qdial::paintevent(qpaintevent *pe)

從qwidget :: paintevent()重新實現。

10、[virtual protected] void qdial::resizeevent(qresizeevent *e)

從qwidget :: resizeevent()重新實現。

11、[virtual] qsize qdial::sizehint() const

從qwidget :: sizehint()重新實現。

12、[virtual protected] void qdial::sliderchange(sliderchange change)

從qabstractslider :: sliderchange()重新實現。

Qt 之 pro 配置子模組,實現模組化開發

下面是pro檔案中的 sources main.cpp mainwindow.cpp headers mainwindow.h forms mainwindow.ui include pwd common common.pri distfiles 下面是pri檔案中的 includepath pwd...

Qt 之 pro 配置子模組,實現模組化開發

下面是pro檔案中的 sources main.cpp mainwindow.cpp headers mainwindow.h forms mainwindow.ui include pwd common common.pri distfiles 下面是pri檔案中的 includepath pwd...

Qt模組簡介

qt 5 與 qt 4 最大的乙個區別之一是底層架構有了修改。qt 5 引入了模組化的概念,將眾多功能細分到幾個模組之中。qt 4 也有模組的概念,但是是一種很粗的劃分,而 qt 5 則更加細化。本節主要對 qt 5 的模組進行乙個簡單的介紹,以便以後大家需要哪些功能的時候知道到哪個模組去尋找。qt...