QSlider 拖动滑动条使用valueChanged(int value)信号重复调用槽函数问题解决

原文地址::https://blog.csdn.net/u011857683/article/details/77865581?locationNum=5&fps=1

使用三个槽,防止滑动的时候重复调用,只有滑动停止才会去改变这个值

 

 

 

 
  1. //mydialog.h

  2. #ifndef MYDIALOG_H

  3. #define MYDIALOG_H

  4. #include <QDialog>

  5. class QLineEdit;

  6. class QSlider;

  7. class MyDialog : public QDialog

  8. {

  9. Q_OBJECT

  10. public:

  11. explicit MyDialog(QWidget *parent = 0);

  12. signals:

  13. public slots:

  14. void setLineEditValue(int value);

  15. private:

  16. QLineEdit *lineEdit;

  17. QSlider *slider;

  18. };

  19. #endif // MYDIALOG_H


 

 

 

 
  1. //mydialog.cpp

  2. #include "mydialog.h"

  3. #include <QtGui/QLineEdit>

  4. #include <QtGui/QSlider>

  5. #include <QtGui/QHBoxLayout>

  6. MyDialog::MyDialog(QWidget *parent) :

  7. QDialog(parent)

  8. {

  9. lineEdit = new QLineEdit("50");

  10.  
  11. //新建一个水平方向的滑动条QSlider控件

  12. slider = new QSlider(Qt::Horizontal);

  13. //设置滑动条控件的最小值

  14. slider->setMinimum(0);

  15. //设置滑动条控件的最大值

  16. slider->setMaximum(100);

  17. //设置滑动条控件的值

  18. slider->setValue(50);

  19.  
  20. //信号和槽 当滑动条的值发生改变时,即产生一个valueChanged(int)信号 设置QLineEdit控件的显示文本

  21. connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setLineEditValue(int)));

  22.  
  23. QHBoxLayout *layout = new QHBoxLayout();

  24. layout->addWidget(lineEdit);

  25. layout->addWidget(slider);

  26.  
  27. this->setLayout(layout);

  28. this->resize(200, 50);

  29. this->setWindowTitle("QSliderDemo");

  30. }

  31.  
  32. void MyDialog::setLineEditValue(int value)

  33. {

  34. int pos = slider->value();

  35. QString str = QString("%1").arg(pos);

  36. lineEdit->setText(str);

  37. }


 

 

 

 

 
  1. //main.cpp

  2. #include <QtGui/QApplication>

  3. #include "mydialog.h"

  4. int main(int argc, char *argv[])

  5. {

  6. QApplication a(argc, argv);

  7. MyDialog dialog;

  8. dialog.show();

  9. return a.exec();

  10. }


 

 

 

程序运行截图:

 

 

 

 

 

本文转自:

http://blog.csdn.net/qiurisuixiang/article/details/6897914

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值