//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(); }
程序运行截图: