|
2Qter豆
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(doublespinbox_slider()));
connect(ui->doubleSpinBox,SIGNAL(valueChanged(double)),this,SLOT(slider_doublespinbox()));
}
void MainWindow::doublespinbox_slider()
{
ui->doubleSpinBox->setValue((double)(ui->horizontalSlider->value())/100);
}
void MainWindow::slider_doublespinbox()
{
ui->horizontalSlider->setValue((int)(ui->doubleSpinBox->value()*100));
}
主要代码如上,结果是这样的:拖动slider的滑条doublespinbox上面有值变化(0.00-99.98),改变doublesipnbox上面的数字,滑条也有变化,但是按doublespinbox上面的加/减按钮,减的时候有时候减0.01,有时候减0.02,有时候减0.03,加的时候没反应,鼠标点击slider的两边,也是减无规律加没有。这是什么原因,求指导下。
|
最佳答案
查看完整内容
如果只是实验用,这个可以再仔细调试一下,看看到底是哪里的问题。
不过,这个好像是因为:spinbox修改值了,然后发送信号让slider修改值,而slider修改值以后又发送信号给spinbox让其修改值,它们形成了循环,而在其中还进行了数值类型的转换,所以出现了问题。
具体是那一步,为什么出现问题,还是需要自己仔细调试的! ...
|