QAbstractSpinBox 類

The QAbstractSpinBox class provides a spinbox and a line edit to display values. 更多...

頭: #include <QAbstractSpinBox>
qmake: QT += widgets
繼承: QWidget
繼承者: QDateTimeEdit , QDoubleSpinBox ,和 QSpinBox

公共類型

enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }
flags StepEnabled
enum StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled }
enum StepType { DefaultStepType, AdaptiveDecimalStepType }

特性

公共函數

QAbstractSpinBox (QWidget * parent = nullptr)
virtual ~QAbstractSpinBox ()
Qt::Alignment alignment () const
QAbstractSpinBox::ButtonSymbols buttonSymbols () const
QAbstractSpinBox::CorrectionMode correctionMode () const
virtual void fixup (QString & input ) const
bool hasAcceptableInput () const
bool hasFrame () const
void interpretText ()
bool isAccelerated () const
bool isGroupSeparatorShown () const
bool isReadOnly () const
bool keyboardTracking () const
void setAccelerated (bool on )
void setAlignment (Qt::Alignment flag )
void setButtonSymbols (QAbstractSpinBox::ButtonSymbols bs )
void setCorrectionMode (QAbstractSpinBox::CorrectionMode cm )
void setFrame ( bool )
void setGroupSeparatorShown (bool shown )
void setKeyboardTracking (bool kt )
void setReadOnly (bool r )
void setSpecialValueText (const QString & txt )
void setWrapping (bool w )
QString specialValueText () const
virtual void stepBy (int steps )
QString text () const
virtual QValidator::State validate (QString & input , int & pos ) const
bool wrapping () const

重實現公共函數

virtual bool event (QEvent * event ) override
virtual QVariant inputMethodQuery (Qt::InputMethodQuery query ) const override
virtual QSize minimumSizeHint () const override
virtual QSize sizeHint () const override

公共槽

virtual void clear ()
void selectAll ()
void stepDown ()
void stepUp ()

信號

void editingFinished ()

靜態公共成員

const QMetaObject staticMetaObject

保護函數

void initStyleOption (QStyleOptionSpinBox * option ) const
QLineEdit * lineEdit () const
void setLineEdit (QLineEdit * lineEdit )
virtual QAbstractSpinBox::StepEnabled stepEnabled () const

重實現保護函數

virtual void changeEvent (QEvent * event ) override
virtual void closeEvent (QCloseEvent * event ) override
virtual void contextMenuEvent (QContextMenuEvent * event ) override
virtual void focusInEvent (QFocusEvent * event ) override
virtual void focusOutEvent (QFocusEvent * event ) override
virtual void hideEvent (QHideEvent * event ) override
virtual void keyPressEvent (QKeyEvent * event ) override
virtual void keyReleaseEvent (QKeyEvent * event ) override
virtual void mouseMoveEvent (QMouseEvent * event ) override
virtual void mousePressEvent (QMouseEvent * event ) override
virtual void mouseReleaseEvent (QMouseEvent * event ) override
virtual void paintEvent (QPaintEvent * event ) override
virtual void resizeEvent (QResizeEvent * event ) override
virtual void showEvent (QShowEvent * event ) override
virtual void timerEvent (QTimerEvent * event ) override
virtual void wheelEvent (QWheelEvent * event ) override

額外繼承成員

詳細描述

The QAbstractSpinBox class provides a spinbox and a line edit to display values.

此類被設計作為 Widget 的通用超類像 QSpinBox , QDoubleSpinBox and QDateTimeEdit

這裏是類的主要特性:

  1. text : The text that is displayed in the QAbstractSpinBox .
  2. alignment : The alignment of the text in the QAbstractSpinBox .
  3. wrapping : Whether the QAbstractSpinBox wraps from the minimum value to the maximum value and vice versa.

QAbstractSpinBox provides a virtual stepBy () 函數被調用每當用戶觸發步進時。此函數接受錶示已走瞭多少步的整數值。如:按下 Qt::Key_Down 將觸發調用 stepBy (-1).

當用戶觸發步進時的同時按住 Qt::ControlModifier , QAbstractSpinBox steps by 10 instead of making a single step. This step modifier affects wheel events, key events and interaction with the spinbox buttons. Note that on macOS , Control corresponds to the Command key.

從 Qt 5.12 起, QStyle::SH_SpinBox_StepModifier 可以用來選擇 Qt::KeyboardModifier 遞增步幅速率。 Qt::NoModifier 禁用此特徵。

QAbstractSpinBox also provide a virtual function stepEnabled () 以確定在任何時候是否允許嚮上/嚮下步進。此函數返迴位集的 StepEnabled .

另請參閱 QAbstractSlider , QSpinBox , QDoubleSpinBox , QDateTimeEdit ,和 自鏇框範例 .

成員類型文檔編製

enum QAbstractSpinBox:: ButtonSymbols

此枚舉類型描述可以在自鏇框按鈕中顯示的符號。

常量 描述
QAbstractSpinBox::UpDownArrows 0 經典風格小箭頭。
QAbstractSpinBox::PlusMinus 1 + and - 符號。
QAbstractSpinBox::NoButtons 2 不顯示按鈕。

另請參閱 QAbstractSpinBox::buttonSymbols .

enum QAbstractSpinBox:: CorrectionMode

此枚舉類型描述的自鏇框模式用於校正 中間體 值若編輯完成。

常量 描述
QAbstractSpinBox::CorrectToPreviousValue 0 自鏇框將恢復到最後有效值。
QAbstractSpinBox::CorrectToNearestValue 1 自鏇框將恢復到最近有效值。

另請參閱 correctionMode .

enum QAbstractSpinBox:: StepEnabledFlag
flags QAbstractSpinBox:: StepEnabled

常量
QAbstractSpinBox::StepNone 0x00
QAbstractSpinBox::StepUpEnabled 0x01
QAbstractSpinBox::StepDownEnabled 0x02

StepEnabled 類型是 typedef 對於 QFlags <StepEnabledFlag>。它存儲 StepEnabledFlag 值的 OR 組閤。

enum QAbstractSpinBox:: StepType

常量
QAbstractSpinBox::DefaultStepType 0
QAbstractSpinBox::AdaptiveDecimalStepType 1

特性文檔編製

accelerated : bool

此特性保持自鏇框是否會增加步進的頻率,當按下嚮上/嚮下步進按鈕時。

若啓用,自鏇框會更快地遞增/遞減值,當按下按鈕時間越長時。

該特性在 Qt 4.2 引入。

訪問函數:

bool isAccelerated () const
void setAccelerated (bool on )

acceptableInput : const bool

此特性保持輸入是否滿足當前驗證

該特性在 Qt 4.2 引入。

訪問函數:

bool hasAcceptableInput () const

另請參閱 validate (), fixup (),和 correctionMode .

alignment : Qt::Alignment

此特性保持自鏇框的對齊方式

可能的值是 Qt::AlignLeft , Qt::AlignRight ,和 Qt::AlignHCenter .

默認情況下,對齊方式為 Qt::AlignLeft

試圖把對齊方式設為非法標誌的組閤,會什麼都不做。

訪問函數:

Qt::Alignment alignment () const
void setAlignment (Qt::Alignment flag )

另請參閱 Qt::Alignment .

buttonSymbols : ButtonSymbols

此特性保持當前按鈕的符號模式

可能的值可以是 UpDownArrows or PlusMinus 。默認為 UpDownArrows .

注意:某些風格可能渲染 PlusMinus and UpDownArrows 同等。

訪問函數:

QAbstractSpinBox::ButtonSymbols buttonSymbols () const
void setButtonSymbols (QAbstractSpinBox::ButtonSymbols bs )

另請參閱 ButtonSymbols .

correctionMode : CorrectionMode

此特性保持的模式用於校正 中間體 值若編輯完成

默認模式為 QAbstractSpinBox::CorrectToPreviousValue .

該特性在 Qt 4.2 引入。

訪問函數:

QAbstractSpinBox::CorrectionMode correctionMode () const
void setCorrectionMode (QAbstractSpinBox::CorrectionMode cm )

另請參閱 acceptableInput , validate (),和 fixup ().

frame : bool

此特性保持自鏇框是否采用框架繪製自身

若啓用 (默認),自鏇框在框架內繪製自身,否則自鏇框在沒有任何框架的情況下繪製自身。

訪問函數:

bool hasFrame () const
void setFrame ( bool )

keyboardTracking : bool

此特性保持是否為自鏇框啓用鍵盤跟蹤。

If keyboard tracking is enabled (the default), the spinbox emits the valueChanged() signal while the new value is being entered from the keyboard.

如:當用戶通過鍵入 6, 0 和 0 輸入值 600 時,自鏇框會分彆發射 6, 60 和 600 3 個信號。

If keyboard tracking is disabled, the spinbox doesn't emit the valueChanged() signal while typing. It emits the signal later, when the return key is pressed, when keyboard focus is lost, or when other spinbox functionality is used, e.g. pressing an arrow key.

該特性在 Qt 4.3 引入。

訪問函數:

bool keyboardTracking () const
void setKeyboardTracking (bool kt )

readOnly : bool

此特性保持自鏇框是否為隻讀。

在隻讀模式下,用戶仍可以將文本拷貝到剪貼闆,或拖放文本;但無法編輯它。

The QLineEdit QAbstractSpinBox 在隻讀模式下不展示光標。

訪問函數:

bool isReadOnly () const
void setReadOnly (bool r )

另請參閱 QLineEdit::readOnly .

showGroupSeparator : bool

此特性保持是否啓用韆位分隔符。默認情況下,此特性為 false。

該特性在 Qt 5.3 引入。

訪問函數:

bool isGroupSeparatorShown () const
void setGroupSeparatorShown (bool shown )

specialValueText : QString

此特性保持特殊值文本

若有設置,自鏇框會顯示此文本而非數字值,在當前值等於 minimum() 時。典型用途是指示此抉擇具有特殊 (默認) 含義。

例如,若自鏇框允許用戶選取比例因子 (或縮放級彆) 為顯示圖像,且應用程序能夠自動選取允許把圖像完整擬閤在顯示窗口中的某一值,就可以像這樣設置自鏇框:

    QSpinBox *zoomSpinBox = new QSpinBox;
    zoomSpinBox->setRange(0, 1000);
    zoomSpinBox->setSingleStep(10);
    zoomSpinBox->setSuffix("%");
    zoomSpinBox->setSpecialValueText(tr("Automatic"));
    zoomSpinBox->setValue(100);
					

接著,用戶將能在 1% 到 1000% 之間選取比例,或選擇 Auto 以將其留給應用程序去選取。然後,代碼必須把自鏇框 0 值解釋為來自用戶的請求,以縮放圖像為擬閤在窗口內。

所有被顯示值帶前綴和後綴 (若有設置), except 為特殊值,僅展示特殊值文本。此特殊文本被傳入 QSpinBox::valueChanged () 信號傳遞 QString .

要關閉特殊值文本顯示,調用此函數采用空字符串。默認為無特殊值文本 (即:照常展示數字值)。

specialValueText() 返迴空字符串,若未設置特殊值文本。

訪問函數:

QString specialValueText () const
void setSpecialValueText (const QString & txt )

text : const QString

此特性保持自鏇框的文本,包括任何前綴和後綴

不存在默認文本。

訪問函數:

QString text () const

wrapping : bool

此特性保持自鏇框是否循環。

若環繞為 true,從 maximum() 值嚮上步進會到 minimum() 值,反之亦然。環繞纔有意義,若有設置 maximum() 和 minimum() 值。

QSpinBox *spinBox = new QSpinBox(this);
spinBox->setRange(0, 100);
spinBox->setWrapping(true);
spinBox->setValue(100);
spinBox->stepBy(1);
// value is 0
					

訪問函數:

bool wrapping () const
void setWrapping (bool w )

另請參閱 QSpinBox::minimum () 和 QSpinBox::maximum ().

成員函數文檔編製

QAbstractSpinBox:: QAbstractSpinBox ( QWidget * parent = nullptr)

構造抽象 Spinbox 采用給定 parent 采用默認 wrapping ,和 alignment 特性。

[虛擬] QAbstractSpinBox:: ~QAbstractSpinBox ()

被調用當 QAbstractSpinBox 被銷毀。

[override virtual protected] void QAbstractSpinBox:: changeEvent ( QEvent * event )

重實現自 QWidget::changeEvent ().

[virtual slot] void QAbstractSpinBox:: clear ()

清零所有文本的 lineedit,除前綴和後綴外。

[override virtual protected] void QAbstractSpinBox:: closeEvent ( QCloseEvent * event )

重實現自 QWidget::closeEvent ().

[override virtual protected] void QAbstractSpinBox:: contextMenuEvent ( QContextMenuEvent * event )

重實現自 QWidget::contextMenuEvent ().

[signal] void QAbstractSpinBox:: editingFinished ()

此信號被發射,當編輯完成時。這會發生,當鏇轉框丟失聚焦和當按下 Enter 鍵時。

[override virtual] bool QAbstractSpinBox:: event ( QEvent * event )

重實現自 QWidget::event ().

[虛擬] void QAbstractSpinBox:: fixup ( QString & input ) const

此虛函數的調用是通過 QAbstractSpinBox input 不驗證到 QValidator::Acceptable 當 Return 被按下或 interpretText () 被調用。它將試著改變文本,使其有效。重實現在各子類中。

[override virtual protected] void QAbstractSpinBox:: focusInEvent ( QFocusEvent * event )

重實現自 QWidget::focusInEvent ().

[override virtual protected] void QAbstractSpinBox:: focusOutEvent ( QFocusEvent * event )

重實現自 QWidget::focusOutEvent ().

[override virtual protected] void QAbstractSpinBox:: hideEvent ( QHideEvent * event )

重實現自 QWidget::hideEvent ().

[protected] void QAbstractSpinBox:: initStyleOption ( QStyleOptionSpinBox * option ) const

初始化 option 采用值來自此 QSpinBox 。此方法對子類是有用的,當需要 QStyleOptionSpinBox ,但不希望自己填充所有信息。

另請參閱 QStyleOption::initFrom ().

[override virtual] QVariant QAbstractSpinBox:: inputMethodQuery ( Qt::InputMethodQuery query ) const

重實現自 QWidget::inputMethodQuery ().

void QAbstractSpinBox:: interpretText ()

此函數解釋自鏇框的文本。若值從上次解釋以來已改變,它會發射信號。

[override virtual protected] void QAbstractSpinBox:: keyPressEvent ( QKeyEvent * event )

重實現自 QWidget::keyPressEvent ().

此函數處理鍵盤輸入。

具體處理下列鍵:

Enter/Return 這會重新解釋文本並發射信號,即使從上次發射信號以來值沒有改變。
Up 這會援引 stepBy (1)
Down 這會援引 stepBy (-1)
Page up 這會援引 stepBy (10)
Page down 這會援引 stepBy (-10)

另請參閱 stepBy ().

[override virtual protected] void QAbstractSpinBox:: keyReleaseEvent ( QKeyEvent * event )

重實現自 QWidget::keyReleaseEvent ().

[protected] QLineEdit *QAbstractSpinBox:: lineEdit () const

此函數返迴自鏇框行編輯器指針。

另請參閱 setLineEdit ().

[override virtual] QSize QAbstractSpinBox:: minimumSizeHint () const

重實現自 QWidget::minimumSizeHint ().

[override virtual protected] void QAbstractSpinBox:: mouseMoveEvent ( QMouseEvent * event )

重實現自 QWidget::mouseMoveEvent ().

[override virtual protected] void QAbstractSpinBox:: mousePressEvent ( QMouseEvent * event )

重實現自 QWidget::mousePressEvent ().

[override virtual protected] void QAbstractSpinBox:: mouseReleaseEvent ( QMouseEvent * event )

重實現自 QWidget::mouseReleaseEvent ().

[override virtual protected] void QAbstractSpinBox:: paintEvent ( QPaintEvent * event )

重實現自 QWidget::paintEvent ().

[override virtual protected] void QAbstractSpinBox:: resizeEvent ( QResizeEvent * event )

重實現自 QWidget::resizeEvent ().

[slot] void QAbstractSpinBox:: selectAll ()

選擇自鏇框中的所有文本,除前綴和後綴外。

[protected] void QAbstractSpinBox:: setLineEdit ( QLineEdit * lineEdit )

將自鏇框的行編輯設為 lineEdit 而不是當前行編輯 Widget。 lineEdit can not be 0.

QAbstractSpinBox 擁有所有權對於新的 lineEdit

QLineEdit::validator () 為 lineEdit 返迴 nullptr ,將把自鏇框的內部驗證器設置在行編輯。

另請參閱 lineEdit ().

[override virtual protected] void QAbstractSpinBox:: showEvent ( QShowEvent * event )

重實現自 QWidget::showEvent ().

[override virtual] QSize QAbstractSpinBox:: sizeHint () const

重實現自 QWidget::sizeHint ().

[虛擬] void QAbstractSpinBox:: stepBy ( int steps )

該虛函數被調用,每當用戶觸發步進時。 steps 參數指示要走多少步。例如,按下 Qt::Key_Down 將觸發調用 stepBy(-1) ,而按下 Qt::Key_PageUp 將觸發調用 stepBy(10) .

若子類 QAbstractSpinBox ,必須重實現此函數。注意,此函數被調用,即使結果值超齣最小和最大邊界。此函數的作業就是處理這些狀況。

另請參閱 stepUp (), stepDown (),和 keyPressEvent ().

[slot] void QAbstractSpinBox:: stepDown ()

往下走一步,調用此槽類似於調用 stepBy (-1);

另請參閱 stepBy () 和 stepUp ().

[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox:: stepEnabled () const

虛函數確定在任何給定時間,嚮上、嚮下步進是否閤法。

嚮上箭頭會被繪製成禁用,除非 (stepEnabled() & StepUpEnabled ) != 0.

將返迴默認實現 ( StepUpEnabled | StepDownEnabled ) 若環繞被打開。否則它會返迴 StepDownEnabled 若值 > minimum() 或采用 StepUpEnabled 若值 < maximum()。

若子類 QAbstractSpinBox ,將需要重實現此函數。

另請參閱 QSpinBox::minimum (), QSpinBox::maximum (),和 wrapping ().

[slot] void QAbstractSpinBox:: stepUp ()

嚮上走一步,調用此槽類似於調用 stepBy (1);

另請參閱 stepBy () 和 stepDown ().

[override virtual protected] void QAbstractSpinBox:: timerEvent ( QTimerEvent * event )

重實現自 QObject::timerEvent ().

[虛擬] QValidator::State QAbstractSpinBox:: validate ( QString & input , int & pos ) const

此虛函數的調用是通過 QAbstractSpinBox 以確定是否 input 有效。 pos 參數以字符串形式指示位置。重實現在各種子類。

[override virtual protected] void QAbstractSpinBox:: wheelEvent ( QWheelEvent * event )

重實現自 QWidget::wheelEvent ().