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 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体