结果:
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QHBoxLayout>
#include <QWidget>
#include <QDialog>
class QLineEdit;
class QSlider;
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
signals:
public slots:
void setLineEditValue();
void setLineEditValue2();
private:
QLineEdit *lineEdit;
QLineEdit *AddlineEdit;
QSlider *slider;
QLineEdit *lineEdit2;
QSlider *slider2;
Ui::Widget *ui;
QHBoxLayout *layout;
int pos1 = 30;
int pos2 = 40;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QLineEdit>
#include <QSlider>
#include <QHBoxLayout>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->resize(500,500);
this->setWindowTitle("QSliderDemo");
lineEdit = new QLineEdit(this);
lineEdit->setText(QString("%1").arg(pos1));
lineEdit2 = new QLineEdit(this);
lineEdit2->setText(QString("%1").arg(pos2));
AddlineEdit = new QLineEdit(this);
AddlineEdit->setText(QString("%1").arg(pos1+pos2));
slider = new QSlider(Qt::Horizontal);
slider->setMinimum(0);
slider->setMaximum(100);
slider->setValue(pos1);
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setLineEditValue()));
slider2 = new QSlider(Qt::Horizontal);
slider2->setMinimum(0);
slider2->setMaximum(100);
slider2->setValue(pos2);
connect(slider2, SIGNAL(valueChanged(int)), this, SLOT(setLineEditValue2()));
layout = new QHBoxLayout();
layout->addWidget(lineEdit);
layout->addWidget(slider);
layout->addWidget(lineEdit2);
layout->addWidget(slider2);
layout->addWidget(AddlineEdit);
this->setLayout(layout);
}
Widget::~Widget()
{
delete ui;
}
void Widget::setLineEditValue()
{
pos1 = slider->value();
lineEdit->setText(QString("%1").arg(pos1));
AddlineEdit->setText(QString("%1").arg(pos1+pos2));
}
void Widget::setLineEditValue2()
{
pos2 = slider2->value();
lineEdit2->setText(QString("%1").arg(pos2));
AddlineEdit->setText(QString("%1").arg(pos1+pos2));
}