这几个控件的功能类似。区别是QSlider/QSpinBox的值是int型的,QDoubleSpinBox的值是double型的。
1)常用属性(可用Qt Creator在界面上设置):
minimum: 最小值
maximum: 最大值
singleStep: 单步变化量
2)常用信号
对于QSlider/QSpinBox是valueChanged(int)
对于QDoubleSpinBox是valueChanged(double)
3)常用方法
value()
QSlider/QSpinBox返回int型值,QDoubleSpinBox返回double型值。
setValue()
QSlider/QSpinBox的参数为int型值,QDoubleSpinBox的参数为double型值。
实例:
实现在QSlider和QDoubleSpinBox的同步变化。
class MainWindow:public QMainWindow
{
private:
QSlider *horizontalSlider;
QDoubleSpinBox *doubleSpinBox;
private slots://声明槽函数
void slotDoubleSpinbox_Slider();
void slotSlider_DoubleSpinbox();
MainWindow::MainWindow(QWidget*parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
/*********信号和槽的映射******************************/
connect(ui->doubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(slotDoubleSpinbox_Slider()));
connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(slotSlider_DoubleSpinbox()));
}
/***槽函数:设置horizontalSlider的值***/
voidMainWindow::slotDoubleSpinbox_Slider()
{
ui->horizontalSlider->setValue((int)(ui->doubleSpinBox->value()*100));
}
/***槽函数:设置doubleSpinBox的值***/
voidMainWindow::slotSlider_DoubleSpinbox()
{
ui->doubleSpinBox->setValue((double)(ui->horizontalSlider->value())/100);
}