qq_34917736
day_day97
2017-08-14 12:26

QSlider的sliderReleased()信号

  • qslider
  • qt
  • 信号

有没有大神知道qslider的sliderreleased信号怎么用啊,我用这个信号连接槽不知道问什么就是调用不了槽函数,但改成valuechange就可以

 #include "dialog.h"
#include "ui_dialog.h"

#include <QtGui/QLineEdit>
#include <QtGui/QSlider>
#include <QtGui/QHBoxLayout>
#include <QDebug>

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    lineEdit = new QLineEdit("50");

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

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

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

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

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::setLineEditValue(int value)
{
    int pos = slider->value();
    QString str = QString("%1").arg(pos);
    lineEdit->setText(str);
    qDebug()<<"a time"<<endl;
}

connect(slider, SIGNAL(sliderReleased()), this, SLOT(setLineEditValue(int)));
这样写完全调用不了函数。
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setLineEditValue(int)));
但这样就可以,不明白为什么。
帮助文档里面的sliderReleased()确实没有参数。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答