簡述
QSlider繼承自QAbstractSlider
QSlider提供水平或垂直的滑塊。
滑塊是用於控制有界值的經典小部件。它使用戶可以沿水平或垂直凹槽移動滑動手柄,並將手柄的位置轉換爲合法範圍內的整數值。
功能詳述
QSlider僅有很少的專屬功能。大多數功能都是繼承自QAbstractSlider。最有用的函數是setValue(),可將滑塊直接設置爲某個值。 triggerAction()模擬點擊的效果(對於快捷鍵很有用); setSingleStep(),setPageStep()設置步長;setMinimum()和setMaximum()來定義滾動條的範圍。
QSlider提供了控制刻度線的方法。可以使用setTickPosition()來指示刻度線的位置,setTickInterval()可以指示想要的刻度線數。當前設置的刻度位置和間隔可以分別使用tickPosition()和tickInterval()函數查詢。
使用
效果
源碼
QSlider *slider = new QSlider;
QSpinBox *spinBox = new QSpinBox(Qt::Horizontal);
QGridLayout *gridLayout = new QGridLayout;
gridLayout->addWidget(slider, 0, 0, 1, 1);
gridLayout->addWidget(spinBox, 0, 1, 1, 1);
this->setLayout(gridLayout);
connect(slider, &QSlider::valueChanged, spinBox, &QSpinBox::setValue);
connect(spinBox, QOverload<int>::of(&QSpinBox::valueChanged),slider, &QSlider::setValue);
注意到這裏第二個信號槽的綁定方法有點特殊,這是因爲QSpin的valueChanged是一個重載函數,它有兩個版本,所以我們需要指定具體是哪一個函數。
常用接口
QSlider大多數屬性與方法都是繼承自QAbstractSlider,下面是QSlider獨有的屬性
屬性
- 刻度數量
- tickInterval
- 刻度位置
- tickPosition
枚舉類型QSlider::TickPosition
常量 | 值 | 描述 |
---|---|---|
QSlider::NoTicks | 0 | 不繪製任何刻度 |
QSlider::TicksBothSides | 3 | 溝槽的兩邊都繪製刻度 |
QSlider::TicksAbove | 1 | 溝槽(水平)的上部繪製刻度 |
QSlider::TicksBelow | 2 | 溝槽(水平)的下部繪製刻度 |
QSlider::TicksLeft | TicksAbove | 溝槽(垂直)的左邊繪製刻度 |
QSlider::TicksRight | TicksBelow | 溝槽(垂直)的右邊繪製刻度 |
公共函數
- 設置刻度數量
- setTickInterval(int)
- 設置刻度位置
- setTickPosition(QSlider::TickPosition)
效果
源碼
slider->setTickInterval(10);
slider->setTickPosition(QSlider::TicksBothSides);
- 返回刻度數量
- int tickInterval()
- 返回刻度位置
- QSlider::TickPosition tickPosition()
引用
[1] Qt助手
[2] QAbstractSlider