0

我有一个 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()));

我该怎么做?有人知道吗?

4

2 回答 2

2

你能编译这段代码吗?

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

你必须写:

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

于 2012-08-27T12:44:19.100 回答
1

您是否知道vtkImagePlaneWidget::SetSliceIndexint作为参数,而不是double?你的xminxmax范围是多少?double 到 int 的默认转换将截断所有小数步进(如我看到的滑块步进的 1/4)。此外,您正在连接到 . 上不存在的信号和插槽QDoubleSpinBoxsetValue并将intvalueChanged作为参数,而不是double

于 2012-08-27T21:19:04.467 回答