我有一个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()));
我该怎么办?有没有人有任何想法?
答案 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
上不存在的信号和插槽。 setValue
和valueChanged
将 int 作为参数,而不是 double 。