信號說明
QSlider很少有自己的函數,大部分功能在QAbstractSlider中。
最有用的函數是setValue(),用來設置滑塊的當前值;
triggerAction()來模擬點擊的效果(對快捷鍵有用);
setSingleStep()、setPageStep()用來設置步長;
setMinimum()和setMaximum()用於定義滾動條的范圍。
QSlider提供了一些方法來控制刻度標記:
可以使用setTickPosition()來表示刻度標記的位置,
使用setTickInterval()來指定刻度的間隔;
當前設置的刻度位置和間隔可以分別使用tickPosition()和tickInterval()函數來查詢。
QSlider繼承了一組全面的信號:
信號 | 描述 |
---|---|
valueChanged() | 當滑塊的值發生了改變,發射此信號。tracking()確定在用戶交互時,是否發出此信號。 |
sliderPressed() | 當用戶按下滑塊,發射此信號。 |
sliderMoved() | 當用戶拖動滑塊,發射此信號。 |
sliderReleased() | 當用戶釋放滑塊,發射此信號。 |
QSlider只提供整數范圍。
注意:盡管QSlider可以處理非常大的數字,但是對於用戶來說,難以准確使用很大范圍的滑塊。
滑塊接受Tab鍵的焦點,並同時提供了一個鼠標滾輪和鍵盤接口。鍵盤接口如下:
-
Left/Right 移動水平滑塊一個步長。
-
Up/Down 移動垂直滑塊一個步長。
-
PageUp 上移一頁。
-
PageDown 下移一頁。
-
Home 移動至起始位置(最小值)。
-
End 移動至結束位置(最大值)
刻度位置
枚舉 QSlider::TickPosition
這個枚舉指定刻度線相對於滑塊和用戶操作的位置。
常量 | 值 | 描述 |
---|---|---|
QSlider::NoTicks | 0 | 不繪制任何刻度線 |
QSlider::TicksBothSides | 3 | 在滑塊的兩側繪制刻度線 |
QSlider::TicksAbove | 1 | 在(水平)滑塊上方繪制刻度線 |
QSlider::TicksBelow | 2 | 在(水平)滑塊下方繪制刻度線 |
QSlider::TicksLeft | TicksAbove | 在(垂直)滑塊左側繪制刻度線 |
QSlider::TicksRight | TicksBelow | 在(垂直)滑塊右側繪制刻度線 |
基本使用
ui->horizontalSlider->setRange(0, 255);//設置范圍 ui->horizontalSlider->setValue(37); //設置當前值 int val = ui->horizontalSlider->value(); //獲取值 ui->OUT1->setText(QString::number(val));//把獲取到的值顯示在文本框
結合上面的代碼,在用上面代碼初始化后,可以把使用信號槽 valueChanged(int value) 實現簡單的拖動滑塊顯示拖動的值
void MainWindow::on_horizontalSlider_valueChanged(int value) { ui->OUT1->setText(QString::number(value)); }
實現的結果如下,注意:下圖的ON/OFF按鈕跟左上角的PNP是其他的測試使用的,跟本次說的功能實現沒有關聯影響就不放出來了。