Qt基础学习(3)-----滑动条之QSlider

时间:2022-11-01 13:44:21
//mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
class QLineEdit;
class QSlider;
class MyDialog : public QDialog
{
  Q_OBJECT
public:
  explicit MyDialog(QWidget *parent = 0);
signals:
public slots:
  void setLineEditValue(int value);
private:
  QLineEdit *lineEdit;
  QSlider *slider;
};
#endif // MYDIALOG_H


 

 

 

//mydialog.cpp
#include "mydialog.h"
#include <QtGui/QLineEdit>
#include <QtGui/QSlider>
#include <QtGui/QHBoxLayout>
MyDialog::MyDialog(QWidget *parent) :
  QDialog(parent)
{
  lineEdit = new QLineEdit("50");

  //新建一个水平方向的滑动条QSlider控件
  slider = new QSlider(Qt::Horizontal);
  //设置滑动条控件的最小值
  slider->setMinimum(0);
  //设置滑动条控件的最大值
  slider->setMaximum(100);
  //设置滑动条控件的值
  slider->setValue(50);

  //信号和槽 当滑动条的值发生改变时,即产生一个valueChanged(int)信号 设置QLineEdit控件的显示文本
  connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setLineEditValue(int)));

  QHBoxLayout *layout = new QHBoxLayout();
  layout->addWidget(lineEdit);
  layout->addWidget(slider);

  this->setLayout(layout);
  this->resize(200, 50);
  this->setWindowTitle("QSliderDemo");
}

void MyDialog::setLineEditValue(int value)
{
  int pos = slider->value();
  QString str = QString("%1").arg(pos);
  lineEdit->setText(str);
}


 

//main.cpp
#include <QtGui/QApplication>
#include "mydialog.h"
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  MyDialog dialog;
  dialog.show();
  return a.exec();
}


 

程序运行截图:

Qt基础学习(3)-----滑动条之QSlider