在Qt中编写以下代码,将QLineEdit与QSLider进行关联,当QLineEdit内的数值改变时,QSlider也做出相应改变,如果需要自己编写槽函数的话,请把槽函数一起编写出来
时间: 2023-03-21 07:00:48 浏览: 191
Qt:QLineEdit
4星 · 用户满意度95%
在Qt中,可以使用`QLineEdit`和`QSlider`的`valueChanged`信号和`setValue`槽函数将它们关联起来。以下是一个简单的示例:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget widget;
QVBoxLayout layout(&widget);
QLineEdit lineEdit;
QSlider slider(Qt::Horizontal);
layout.addWidget(&lineEdit);
layout.addWidget(&slider);
QObject::connect(&lineEdit, &QLineEdit::textChanged, [&slider](const QString& text){
bool ok;
int value = text.toInt(&ok);
if (ok) {
slider.setValue(value);
}
});
QObject::connect(&slider, &QSlider::valueChanged, [&lineEdit](int value){
lineEdit.setText(QString::number(value));
});
widget.show();
return app.exec();
}
```
这个示例中,我们创建了一个`QLineEdit`和一个`QSlider`,并将它们添加到一个垂直布局中。然后,我们使用`QObject::connect`函数将`textChanged`信号与一个lambda表达式关联起来,这个lambda表达式将`QLineEdit`的文本转换为一个整数,并将该整数设置为`QSlider`的值。我们还将`valueChanged`信号与另一个lambda表达式关联起来,这个lambda表达式将`QSlider`的值转换为一个字符串,并将其设置为`QLineEdit`的文本。
阅读全文