QAbstractSpinBox 類提供自鏇框和行編輯,以顯示值。 更多...
| 頭: | #include <QAbstractSpinBox> |
| qmake: | QT += widgets |
| 繼承: | QWidget |
| 繼承者: |
| 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 () |
| 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 |
此類被設計作為 Widget 的通用超類像 QSpinBox , QDoubleSpinBox and QDateTimeEdit
這裏是類的主要特性:
QAbstractSpinBox 提供虛擬 stepBy () 函數被調用每當用戶觸發步進時。此函數接受錶示已走瞭多少步的整數值。如:按下 Qt::Key_Down 將觸發調用 stepBy (-1).
當用戶觸發步進時的同時按住 Qt::ControlModifier ,QAbstractSpinBox 步進 10 而不是單步。此步進修飾符影響滾輪事件、鍵事件及與自鏇框按鈕的交互。注意:在 macOS,Ctrl 鍵相當於 Command 鍵。
從 Qt 5.12 起, QStyle::SH_SpinBox_StepModifier 可以用來選擇 Qt::KeyboardModifier 遞增步幅速率。 Qt::NoModifier 禁用此特徵。
QAbstractSpinBox 還提供虛函數 stepEnabled () 以確定在任何時候是否允許嚮上/嚮下步進。此函數返迴位集的 StepEnabled .
另請參閱 QAbstractSlider , QSpinBox , QDoubleSpinBox , QDateTimeEdit ,和 自鏇框範例 .
此枚舉類型描述可以在自鏇框按鈕中顯示的符號。
| 常量 | 值 | 描述 |
|---|---|---|
QAbstractSpinBox::UpDownArrows
|
0
|
經典風格小箭頭。 |
QAbstractSpinBox::PlusMinus
|
1
|
+ and - 符號。 |
QAbstractSpinBox::NoButtons
|
2
|
不顯示按鈕。 |
另請參閱 QAbstractSpinBox::buttonSymbols .
此枚舉類型描述的自鏇框模式用於校正 中間體 值若編輯完成。
| 常量 | 值 | 描述 |
|---|---|---|
QAbstractSpinBox::CorrectToPreviousValue
|
0
|
自鏇框將恢復到最後有效值。 |
QAbstractSpinBox::CorrectToNearestValue
|
1
|
自鏇框將恢復到最近有效值。 |
另請參閱 correctionMode .
| 常量 | 值 |
|---|---|
QAbstractSpinBox::StepNone
|
0x00
|
QAbstractSpinBox::StepUpEnabled
|
0x01
|
QAbstractSpinBox::StepDownEnabled
|
0x02
|
StepEnabled 類型是 typedef 對於 QFlags <StepEnabledFlag>。它存儲 StepEnabledFlag 值的 OR 組閤。
| 常量 | 值 |
|---|---|
QAbstractSpinBox::DefaultStepType
|
0
|
QAbstractSpinBox::AdaptiveDecimalStepType
|
1
|
此特性保持自鏇框是否會增加步進的頻率,當按下嚮上/嚮下步進按鈕時。
若啓用,自鏇框會更快地遞增/遞減值,當按下按鈕時間越長時。
該特性在 Qt 4.2 引入。
訪問函數:
| bool | isAccelerated () const |
| void | setAccelerated (bool on ) |
此特性保持輸入是否滿足當前驗證
該特性在 Qt 4.2 引入。
訪問函數:
| bool | hasAcceptableInput () const |
另請參閱 validate (), fixup (),和 correctionMode .
此特性保持自鏇框的對齊方式
可能的值是 Qt::AlignLeft , Qt::AlignRight ,和 Qt::AlignHCenter .
默認情況下,對齊方式為 Qt::AlignLeft
試圖把對齊方式設為非法標誌的組閤,會什麼都不做。
訪問函數:
| Qt::Alignment | alignment () const |
| void | setAlignment (Qt::Alignment flag ) |
另請參閱 Qt::Alignment .
此特性保持當前按鈕的符號模式
可能的值可以是
UpDownArrows
or
PlusMinus
。默認為
UpDownArrows
.
注意:某些風格可能渲染 PlusMinus and UpDownArrows 同等。
訪問函數:
| QAbstractSpinBox::ButtonSymbols | buttonSymbols () const |
| void | setButtonSymbols (QAbstractSpinBox::ButtonSymbols bs ) |
另請參閱 ButtonSymbols .
此特性保持的模式用於校正 中間體 值若編輯完成
默認模式為 QAbstractSpinBox::CorrectToPreviousValue .
該特性在 Qt 4.2 引入。
訪問函數:
| QAbstractSpinBox::CorrectionMode | correctionMode () const |
| void | setCorrectionMode (QAbstractSpinBox::CorrectionMode cm ) |
另請參閱 acceptableInput , validate (),和 fixup ().
此特性保持自鏇框是否采用框架繪製自身
若啓用 (默認),自鏇框在框架內繪製自身,否則自鏇框在沒有任何框架的情況下繪製自身。
訪問函數:
| bool | hasFrame () const |
| void | setFrame ( bool ) |
此特性保持是否為自鏇框啓用鍵盤跟蹤。
若鍵盤追蹤被啓用 (默認),自鏇框會發射 valueChanged() 和 textChanged() 信號,當正從鍵盤鍵入新值時。
如:當用戶通過鍵入 6, 0 和 0 輸入值 600 時,自鏇框會分彆發射 6, 60 和 600 3 個信號。
若鍵盤追蹤被禁用,自鏇框不會發射 valueChanged() 和 textChanged() 信號當鍵入時。它稍後會發射信號,當按下 Return 鍵時、當鍵盤丟失聚焦時,或當使用其它自鏇框功能時 (如:按下箭頭鍵時)。
該特性在 Qt 4.3 引入。
訪問函數:
| bool | keyboardTracking () const |
| void | setKeyboardTracking (bool kt ) |
此特性保持自鏇框是否為隻讀。
在隻讀模式下,用戶仍可以將文本拷貝到剪貼闆,或拖放文本;但無法編輯它。
The QLineEdit 在 QAbstractSpinBox 在隻讀模式下不展示光標。
訪問函數:
| bool | isReadOnly () const |
| void | setReadOnly (bool r ) |
另請參閱 QLineEdit::readOnly .
此特性保持是否啓用韆位分隔符。默認情況下,此特性為 false。
該特性在 Qt 5.3 引入。
訪問函數:
| bool | isGroupSeparatorShown () const |
| void | setGroupSeparatorShown (bool shown ) |
此特性保持特殊值文本
若有設置,自鏇框會顯示此文本而非數字值,在當前值等於 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::textChanged () 信號傳遞 QString .
要關閉特殊值文本顯示,調用此函數采用空字符串。默認為無特殊值文本 (即:照常展示數字值)。
specialValueText() 返迴空字符串,若未設置特殊值文本。
訪問函數:
| QString | specialValueText () const |
| void | setSpecialValueText (const QString & txt ) |
此特性保持自鏇框的文本,包括任何前綴和後綴
不存在默認文本。
訪問函數:
| QString | text () const |
此特性保持自鏇框是否循環。
若環繞為 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 ().
構造抽象 Spinbox 采用給定 parent 采用默認 wrapping ,和 alignment 特性。
[virtual slot]
void
QAbstractSpinBox::
clear
()
清零所有文本的 lineedit,除前綴和後綴外。
[signal]
void
QAbstractSpinBox::
editingFinished
()
此信號被發射,當編輯完成時。這會發生,當鏇轉框丟失聚焦和當按下 Enter 鍵時。
[slot]
void
QAbstractSpinBox::
selectAll
()
選擇自鏇框中的所有文本,除前綴和後綴外。
[slot]
void
QAbstractSpinBox::
stepDown
()
往下走一步,調用此槽類似於調用 stepBy (-1);
[slot]
void
QAbstractSpinBox::
stepUp
()
嚮上走一步,調用此槽類似於調用 stepBy (1);
[虛擬]
QAbstractSpinBox::
~QAbstractSpinBox
()
被調用當 QAbstractSpinBox 被銷毀。
[override virtual protected]
void
QAbstractSpinBox::
changeEvent
(
QEvent
*
event
)
重實現: QWidget::changeEvent (QEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
closeEvent
(
QCloseEvent
*
event
)
重實現: QWidget::closeEvent (QCloseEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
contextMenuEvent
(
QContextMenuEvent
*
event
)
重實現: QWidget::contextMenuEvent (QContextMenuEvent *event).
[override virtual]
bool
QAbstractSpinBox::
event
(
QEvent
*
event
)
重實現: QWidget::event (QEvent *event).
[虛擬]
void
QAbstractSpinBox::
fixup
(
QString
&
input
) const
此虛函數的調用是通過 QAbstractSpinBox 若 input 不驗證到 QValidator::Acceptable 當 Return 被按下或 interpretText () 被調用。它將試著改變文本,使其有效。重實現在各子類中。
[override virtual protected]
void
QAbstractSpinBox::
focusInEvent
(
QFocusEvent
*
event
)
重實現: QWidget::focusInEvent (QFocusEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
focusOutEvent
(
QFocusEvent
*
event
)
重實現: QWidget::focusOutEvent (QFocusEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
hideEvent
(
QHideEvent
*
event
)
重實現: QWidget::hideEvent (QHideEvent *event).
[protected]
void
QAbstractSpinBox::
initStyleOption
(
QStyleOptionSpinBox
*
option
) const
初始化 option 采用值來自此 QSpinBox 。此方法對子類是有用的,當需要 QStyleOptionSpinBox ,但不希望自己填充所有信息。
另請參閱 QStyleOption::initFrom ().
[override virtual]
QVariant
QAbstractSpinBox::
inputMethodQuery
(
Qt::InputMethodQuery
query
) const
重實現: QWidget::inputMethodQuery (Qt::InputMethodQuery query) const.
此函數解釋自鏇框的文本。若值從上次解釋以來已改變,它會發射信號。
[override virtual protected]
void
QAbstractSpinBox::
keyPressEvent
(
QKeyEvent
*
event
)
重實現: QWidget::keyPressEvent (QKeyEvent *event).
此函數處理鍵盤輸入。
具體處理下列鍵:
| 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 (QKeyEvent *event).
[protected]
QLineEdit
*QAbstractSpinBox::
lineEdit
() const
此函數返迴自鏇框行編輯器指針。
另請參閱 setLineEdit ().
[override virtual]
QSize
QAbstractSpinBox::
minimumSizeHint
() const
重實現訪問函數為特性: QWidget::minimumSizeHint .
[override virtual protected]
void
QAbstractSpinBox::
mouseMoveEvent
(
QMouseEvent
*
event
)
重實現: QWidget::mouseMoveEvent (QMouseEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
mousePressEvent
(
QMouseEvent
*
event
)
重實現: QWidget::mousePressEvent (QMouseEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
mouseReleaseEvent
(
QMouseEvent
*
event
)
重實現: QWidget::mouseReleaseEvent (QMouseEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
paintEvent
(
QPaintEvent
*
event
)
重實現: QWidget::paintEvent (QPaintEvent *event).
[override virtual protected]
void
QAbstractSpinBox::
resizeEvent
(
QResizeEvent
*
event
)
重實現: QWidget::resizeEvent (QResizeEvent *event).
[protected]
void
QAbstractSpinBox::
setLineEdit
(
QLineEdit
*
lineEdit
)
將自鏇框的行編輯設為
lineEdit
而不是當前行編輯 Widget。
lineEdit
不可以為
nullptr
.
QAbstractSpinBox 擁有所有權對於新的 lineEdit
若
QLineEdit::validator
() 為
lineEdit
返迴
nullptr
,將把自鏇框的內部驗證器設置在行編輯。
另請參閱 lineEdit ().
[override virtual protected]
void
QAbstractSpinBox::
showEvent
(
QShowEvent
*
event
)
重實現: QWidget::showEvent (QShowEvent *event).
[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 ().
[virtual protected]
QAbstractSpinBox::StepEnabled
QAbstractSpinBox::
stepEnabled
() const
虛函數確定在任何給定時間,嚮上、嚮下步進是否閤法。
嚮上箭頭會被繪製成禁用,除非 (stepEnabled() & StepUpEnabled ) != 0.
將返迴默認實現 ( StepUpEnabled | StepDownEnabled ) 若環繞被打開。否則它會返迴 StepDownEnabled 若值 > minimum() 或采用 StepUpEnabled 若值 < maximum()。
若子類 QAbstractSpinBox ,將需要重實現此函數。
另請參閱 QSpinBox::minimum (), QSpinBox::maximum (),和 wrapping ().
[override virtual protected]
void
QAbstractSpinBox::
timerEvent
(
QTimerEvent
*
event
)
重實現: QObject::timerEvent (QTimerEvent *event).
[虛擬]
QValidator::State
QAbstractSpinBox::
validate
(
QString
&
input
,
int
&
pos
) const
此虛函數的調用是通過 QAbstractSpinBox 以確定是否 input 有效。 pos 參數以字符串形式指示位置。重實現在各種子類。
[override virtual protected]
void
QAbstractSpinBox::
wheelEvent
(
QWheelEvent
*
event
)
重實現: QWidget::wheelEvent (QWheelEvent *event).