有没有办法将 QSlider 和 QLineEdit 对象相互连接?

Is there a way to connect a QSlider and a QLineEdit object to each other?

我正在尝试将 Slider 和 LineEdit 小部件连接在一起,以便在更改其中一个时,另一个将匹配该值。

我很纠结,因为 lineEdit 接受字符串而 Slider 接受整数。我已经在 lineEdit 上使用了 setValidator,因此只能输入整数。

我尝试使用旧的信号和槽语法,但没有成功,使用了快速 Google 搜索中的几种不同方法。

connect(textbox, SIGNAL(textEdited(QString)),slider,
        SLOT((QString)));

我应该使用与 LineEdit 完全不同的小部件吗?

使用lineEdit() method of QSpinBox():

connect(textbox, &QLineEdit::textEdited, slider->lineEdit(), &QLineEdit::setText);

我先用Whosebug来回答别人的问题,哈哈哈

  1. QSlider比较好的绑定信号是QSlider::sliderMoved,不要绑定QSlider::valueChanged,否则会冲突, 也许你可以试试。
  2. 为 QLineEdit 绑定 QLineEdit::textChanged 信号。

代码在这里:

connect(ui->horizontalSlider,&QSlider::sliderMoved,this,[=]{
    int val=ui->horizontalSlider->value();
    //You can process the variable val here.....
    ui->lineEdit->setText(QString::number(val));
});

connect(ui->lineEdit,&QLineEdit::textChanged,this,[=]{
    int val=ui->lineEdit->text().toInt();
    //You can process the variable val here.....
    ui->horizontalSlider->setValue(val);
});