day_day97 2017-08-14 12:26 采纳率: 100%
浏览 2895

QSlider的sliderReleased()信号

有没有大神知道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条回答 默认 最新

  • 关注

    sliderRelease,即鼠标按下,再释放后的瞬间,就触发这个信号,即可处理相应的逻辑~

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘