Qt之輸入控件(QSlider)

簡述

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章