从qwtslider获取值

时间:2012-08-27 11:24:47

标签: qt slider vtk qwt

我有一个qwtslider,我想获得应用于vtkImagePlaneWidget的值,但我无法弄清楚如何做到这一点。我一直在使用getValue()但它不起作用。

我有传递它的功能:

void planevolume::SplaneX()
{
    double xvalue=ui->Slider->getValue();// this does not work
    planeX->SetSliceIndex(xvalue);
    ui->qvtkWidget->update();

将作为一个插槽,

// X Slider
      ui->doubleSpinBox->setDecimals(0);
      ui->doubleSpinBox->setMaximum(xmax);
      ui->doubleSpinBox->setSingleStep(1.0);
      ui->doubleSpinBox->setValue((xmax-xmin)/2.0);
      ui->Slider->setRange(xmin, xmax, 1.0);
      ui->Slider->setScale(xmin, xmax+1.0, (xmax+1.0)/4.0);
      ui->Slider->setValue((xmax-xmin)/2.0);
      connect(ui->Slider, SIGNAL(valueChanged(double)), ui->doubleSpinBox, SLOT(setValue(double)));
      connect(ui->doubleSpinBox, SIGNAL(valueChanged(double)), ui->Slider, SLOT(setValue(double)));

connect(ui->Slider, SIGNAL(valueChanged(double)), this, SLOT(SplaneX()));

我该怎么办?有没有人有任何想法?

2 个答案:

答案 0 :(得分:2)

你能编译这段代码吗?

double xvalue = ui-> Slider-> getValue(); //这不起作用

你必须写:

double xvalue = ui-> Slider-> value ();

答案 1 :(得分:1)

您是否知道vtkImagePlaneWidget::SetSliceIndex int 作为参数,而不是 double ?您的 xmin xmax 的范围是多少?默认将double转换为int将截断所有小数步进(如我所见的滑块步长的1/4)。此外,您还要连接QDoubleSpinBox上不存在的信号和插槽。 setValuevalueChanged int 作为参数,而不是 double