原文地址::https://blog.csdn.net/u011857683/article/details/77865581?locationNum=5&fps=1
使用三个槽,防止滑动的时候重复调用,只有滑动停止才会去改变这个值
-
//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(); -
}
程序运行截图:

本文转自:
http://blog.csdn.net/qiurisuixiang/article/details/6897914
最后
以上就是激动毛巾最近收集整理的关于QSlider 拖动滑动条使用valueChanged(int value)信号重复调用槽函数问题解决的全部内容,更多相关QSlider内容请搜索靠谱客的其他文章。
发表评论 取消回复