QSpinBox、QDoubleSpinBox

QSpinBox和QDoubleSpinBox兩個元件很類似,差別在QSpinBox用來設置整數,QDoubleSpinBox用來設置浮點數,使用者可點擊上、下按鈕或手動輸入,來改變顯示的值,可用prefix增加前綴(像貨幣單位$),用suffix增加後綴(如百分比%),setRange()設定範圍,setValue()設定當前的值,QDoubleSpinBox另外有decimals屬性,用來設定小數點後面的位數,這邊分別示範帶前綴的QSpinBox,以及帶後綴的QDoubleSpinBox。


widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QSpinBox>
#include <QDoubleSpinBox>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
private:
    QSpinBox *spinBox1;
    QDoubleSpinBox *spinBox2;
};

#endif 

widget.cpp

#include "widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent)
{
    setWindowTitle(tr("按鍵組"));
    spinBox1 = new QSpinBox(this);
    spinBox1->setGeometry(30,30,80,30);    //設定位置大小
    spinBox1->setRange(0, 100);            //設定spinBox1範圍
    spinBox1->setValue(20);                //設定spinBox1值
    spinBox1->setPrefix("$");              //設定前綴
    spinBox1->setSingleStep(2);            //設定值的間隔
    int spinBoxValue = spinBox1->value();  //回傳20

    spinBox2 = new QDoubleSpinBox(this);
    spinBox2->setGeometry(30,70,80,30);    //設定位置大小
    spinBox2->setRange(0, 100.0);          //設定spinBox2範圍
    spinBox2->setValue(20.0);              //設定spinBox2值
    spinBox2->setSuffix("%");              //設定後綴
    spinBox2->setDecimals(1);              //設定小數點後位數
}

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

QSpinBox