QAbstractSlider 類

QAbstractSlider 類提供在範圍內的整數值。 更多...

頭: #include <QAbstractSlider>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
繼承: QWidget
繼承者: QDial , QScrollBar ,和 QSlider

公共類型

enum SliderAction { SliderNoAction, SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, …, SliderMove }

特性

公共函數

QAbstractSlider (QWidget * parent = nullptr)
virtual ~QAbstractSlider ()
bool hasTracking () const
bool invertedAppearance () const
bool invertedControls () const
bool isSliderDown () const
int maximum () const
int minimum () const
Qt::Orientation orientation () const
int pageStep () const
void setInvertedAppearance (bool)
void setInvertedControls (bool)
void setMaximum (int)
void setMinimum (int)
void setPageStep (int)
void setSingleStep (int)
void setSliderDown (bool)
void setSliderPosition (int)
void setTracking (bool enable )
int singleStep () const
int sliderPosition () const
void triggerAction (QAbstractSlider::SliderAction action )
int value () const

公共槽

void setOrientation (Qt::Orientation)
void setRange (int min , int max )
void setValue (int)

信號

void actionTriggered (int action )
void rangeChanged (int min , int max )
void sliderMoved (int value )
void sliderPressed ()
void sliderReleased ()
void valueChanged (int value )

保護類型

enum SliderChange { SliderRangeChange, SliderOrientationChange, SliderStepsChange, SliderValueChange }

保護函數

QAbstractSlider::SliderAction repeatAction () const
void setRepeatAction (QAbstractSlider::SliderAction action , int thresholdTime = 500, int repeatTime = 50)
virtual void sliderChange (QAbstractSlider::SliderChange change )

重實現保護函數

virtual void changeEvent (QEvent * ev ) override
virtual bool event (QEvent * e ) override
virtual void keyPressEvent (QKeyEvent * ev ) override
virtual void timerEvent (QTimerEvent * e ) override
virtual void wheelEvent (QWheelEvent * e ) override

詳細描述

此類被設計作為 Widget 的通用超類像 QScrollBar , QSlider and QDial .

這裏是類的主要特性:

  1. value :由 QAbstractSlider 維護的有界整數。
  2. minimum :最低可能值。
  3. maximum :最高可能值。
  4. singleStep :由抽象滑塊提供的 2 自然步幅中的較小者,通常相當於用戶按下箭頭鍵。
  5. pageStep :由抽象滑塊提供的 2 自然步幅中的較大者,通常相當於用戶按下 PageUp 或 PageDown。
  6. tracking :是否啓用滑塊追蹤。
  7. sliderPosition :滑塊的當前位置。若 tracking 被啓用 (默認),這等同於 value .

可以把整體 1 視為第 3 步幅大小。 setValue () 允許將當前值設為在允許範圍內的任何整數,不僅僅是 minimum () + n * singleStep () 對於整數值 n 。某些 Widget 可能允許用戶設置任何根本值;其它 Widget 可能僅僅提供倍增 singleStep () 或 pageStep ().

QAbstractSlider 發射一組綜閤信號:

信號 發射當
valueChanged () 值已改變。 tracking 確定用戶交互期間是否發射此信號。
sliderPressed () 用戶開始拖拽滑塊。
sliderMoved () 用戶拖拽滑塊。
sliderReleased () 用戶釋放滑塊。
actionTriggered () 滑塊動作被觸發。
rangeChanged () 範圍已改變。

QAbstractSlider 提供虛擬 sliderChange () 函數非常適於更新屏幕上的滑塊錶示。通過調用 triggerAction (),子類觸發滑塊動作。2 幫手函數 QStyle::sliderPositionFromValue () 和 QStyle::sliderValueFromPosition () 幫助子類和樣式將屏幕坐標,映射到邏輯範圍值。

另請參閱 QAbstractSpinBox , QSlider , QDial , QScrollBar ,和 滑塊範例 .

成員類型文檔編製

enum QAbstractSlider:: SliderAction

常量
QAbstractSlider::SliderNoAction 0
QAbstractSlider::SliderSingleStepAdd 1
QAbstractSlider::SliderSingleStepSub 2
QAbstractSlider::SliderPageStepAdd 3
QAbstractSlider::SliderPageStepSub 4
QAbstractSlider::SliderToMinimum 5
QAbstractSlider::SliderToMaximum 6
QAbstractSlider::SliderMove 7

enum QAbstractSlider:: SliderChange

常量
QAbstractSlider::SliderRangeChange 0
QAbstractSlider::SliderOrientationChange 1
QAbstractSlider::SliderStepsChange 2
QAbstractSlider::SliderValueChange 3

特性文檔編製

invertedAppearance : bool

此特性保持滑塊是否展示其值的倒置。

若此特性為 false (默認),最小和最大值將展示在繼承 Widget 的經典位置。若值為 true,最小和最大值將齣現在其相反定位。

注意:此特性對於滑塊和錶盤最有意義。對於滾動條,滾動條子控件的視覺效果從屬樣式是否理解反轉外觀;大多數樣式會忽略,用於滾動條的此特性。

訪問函數:

bool invertedAppearance () const
void setInvertedAppearance (bool)

invertedControls : bool

此特性保持滑塊是否反轉其滾輪和鍵事件。

若此特性為 false ,"嚮上" 捲動鼠標滾輪並使用像 Page Up 鍵將朝最大遞增滑塊值。否則,按下 Page Up 將朝最小移動滑塊值。

訪問函數:

bool invertedControls () const
void setInvertedControls (bool)

maximum : int

此特性保持滑塊的最大值

當設置此特性時, minimum 被調節若有必要,以確保範圍仍然有效。滑塊的當前值也被調節到新範圍內。

訪問函數:

int maximum () const
void setMaximum (int)

minimum : int

此特性保持滑塊的最小值

當設置此特性時, maximum 被調節若有必要,以確保範圍仍然有效。滑塊的當前值也被調節到新範圍內。

訪問函數:

int minimum () const
void setMinimum (int)

orientation : Qt::Orientation

此特性保持滑塊的取嚮

取嚮必須是 Qt::Vertical (默認) 或 Qt::Horizontal .

訪問函數:

Qt::Orientation orientation () const
void setOrientation (Qt::Orientation)

pageStep : int

此特性保持頁麵步幅。

由抽象滑塊提供的 2 自然步幅中的較大者,通常相當於用戶按下 PageUp 或 PageDown。

訪問函數:

int pageStep () const
void setPageStep (int)

另請參閱 singleStep .

singleStep : int

此特性保持單步幅。

由抽象滑塊提供的 2 自然步幅中的較小者,通常相當於用戶按下箭頭鍵。

若在自動重復鍵事件期間修改特性,行為不確定。

訪問函數:

int singleStep () const
void setSingleStep (int)

另請參閱 pageStep .

sliderDown : bool

此特性保持滑塊是否被按下。

特性由子類設置,為讓抽象滑塊知道是否 tracking 有任何效果。

改變滑塊嚮下特性會發射 sliderPressed () 和 sliderReleased () 信號。

訪問函數:

bool isSliderDown () const
void setSliderDown (bool)

sliderPosition : int

此特性保持當前滑塊位置

tracking 被啓用 (默認),這等同於 value .

訪問函數:

int sliderPosition () const
void setSliderPosition (int)

通知程序信號:

void sliderMoved (int value )

tracking : bool

此特性保持是否啓用滑塊追蹤

若追蹤被啓用 (默認),滑塊發射 valueChanged () 信號,當在拖拽滑塊時。若追蹤被禁用,滑塊發射 valueChanged () 信號,僅當用戶釋放滑塊時。

訪問函數:

bool hasTracking () const
void setTracking (bool enable )

另請參閱 sliderDown .

value : int

此特性保持滑塊的當前值

滑塊將值強製在閤法範圍內: minimum <= value <= maximum .

更改值也會改變 sliderPosition .

訪問函數:

int value () const
void setValue (int)

通知程序信號:

void valueChanged (int value )

成員函數文檔編製

[explicit] QAbstractSlider:: QAbstractSlider ( QWidget * parent = nullptr)

構造抽象滑塊。

The parent 自變量被發送給 QWidget 構造函數。

The minimum 默認為 0, maximum 到 99,采用 singleStep 1 尺寸和 pageStep 10 尺寸,及初始 value of 0.

[虛擬] QAbstractSlider:: ~QAbstractSlider ()

銷毀滑塊。

[signal] void QAbstractSlider:: actionTriggered ( int action )

此信號被發射當滑塊動作 action 被觸發。動作是 SliderSingleStepAdd , SliderSingleStepSub , SliderPageStepAdd , SliderPageStepSub , SliderToMinimum , SliderToMaximum ,和 SliderMove .

當發射信號時, sliderPosition 已調節根據動作,但 value 尚未被傳播 (意味著 valueChanged () 信號尚未被發射),且尚未更新視覺顯示。在連接到此信號的槽中,因此可以安全地調節任何動作通過調用 setSliderPosition () 本身,基於動作和滑塊值兩者。

另請參閱 triggerAction ().

[override virtual protected] void QAbstractSlider:: changeEvent ( QEvent * ev )

重實現: QWidget::changeEvent (QEvent *event).

[override virtual protected] bool QAbstractSlider:: event ( QEvent * e )

重實現: QWidget::event (QEvent *event).

[override virtual protected] void QAbstractSlider:: keyPressEvent ( QKeyEvent * ev )

重實現: QWidget::keyPressEvent (QKeyEvent *event).

[signal] void QAbstractSlider:: rangeChanged ( int min , int max )

此信號被發射當滑塊範圍已改變時,按 min 是新的最小值,而 max 是新的最大值。

另請參閱 minimum and maximum .

[protected] QAbstractSlider::SliderAction QAbstractSlider:: repeatAction () const

返迴當前的重復動作。

另請參閱 setRepeatAction ().

[slot] void QAbstractSlider:: setRange ( int min , int max )

設置滑塊的最小值為 min 和其最大值為 max .

max < min , min 變為唯一閤法值。

另請參閱 minimum and maximum .

[protected] void QAbstractSlider:: setRepeatAction ( QAbstractSlider::SliderAction action , int thresholdTime = 500, int repeatTime = 50)

設置動作 action 以重復觸發按間隔 repeatTime ,後於初始延遲 thresholdTime .

另請參閱 triggerAction () 和 repeatAction ().

[virtual protected] void QAbstractSlider:: sliderChange ( QAbstractSlider::SliderChange change )

重實現此虛函數以跟蹤滑塊變化,譬如 SliderRangeChange , SliderOrientationChange , SliderStepsChange ,或 SliderValueChange 。默認實現隻更新顯示並忽略 change 參數。

[signal] void QAbstractSlider:: sliderMoved ( int value )

此信號發射,當 sliderDown 為 true 且滑塊有移動。這通常發生在用戶拖拽滑塊時。 value 是新的滑塊位置。

此信號被發射,甚至在關閉追蹤時。

注意: 通知程序信號對於特性 sliderPosition .

另請參閱 setTracking (), valueChanged (), isSliderDown (), sliderPressed (),和 sliderReleased ().

[signal] void QAbstractSlider:: sliderPressed ()

此信號被發射當用戶采用鼠標按下滑塊時,或以編程方式當 setSliderDown (true) 被調用。

另請參閱 sliderReleased (), sliderMoved (),和 isSliderDown ().

[signal] void QAbstractSlider:: sliderReleased ()

此信號被發射當用戶采用鼠標釋放滑塊時,或以編程方式當 setSliderDown (false) 被調用。

另請參閱 sliderPressed (), sliderMoved (),和 sliderDown .

[override virtual protected] void QAbstractSlider:: timerEvent ( QTimerEvent * e )

重實現: QObject::timerEvent (QTimerEvent *event).

void QAbstractSlider:: triggerAction ( QAbstractSlider::SliderAction action )

觸發滑塊 action 。可能的動作是 SliderSingleStepAdd , SliderSingleStepSub , SliderPageStepAdd , SliderPageStepSub , SliderToMinimum , SliderToMaximum ,和 SliderMove .

另請參閱 actionTriggered ().

[signal] void QAbstractSlider:: valueChanged ( int value )

此信號被發射當滑塊值已改變時,采用新滑塊 value 作為自變量。

注意: 通知程序信號對於特性 value .

[override virtual protected] void QAbstractSlider:: wheelEvent ( QWheelEvent * e )

重實現: QWidget::wheelEvent (QWheelEvent *event).