当前位置: 代码迷 >> QT开发 >> 自定义信号和槽的有关问题
  详细解决方案

自定义信号和槽的有关问题

热度:88   发布时间:2016-04-25 03:47:16.0
自定义信号和槽的问题
void Widget::vvvChanged()
{
    if(a!=spin->value())
    {
        a=spin->value()+100;
        emit setV(a);
    }
}

void Widget::setV(int a)
{
    if(a!=spin->value())
    {
        spin->setValue(a);
    }
}
  
有一个slider 和一个spinbox 但他们范围不相等 程线性关系 我想自己定义信号和槽 来实现他们的联系 比如他们的关系是 a=b+100;如何定义信号和槽 我这个定义哪里不对吗 初学 大神勿喷

------解决方案--------------------
引用:
Quote: 引用:

信号函数是不需要实现的
setV(int a);是信号函数还是槽函数?


信号函数不需要实现?可以具体解释一下吗 setV是槽函数

信号函数只要定义了就可以。
比如在你的头文件有这样的一个信号函数:
signals:
   void sendData(int iValue);
然后你有一个这样的槽函数:
private slots:
   void setV(int iValue);

那么你在任何地方都可以直接发送这样的信号:
   emit sendData(x);    //x是一个整型数

通过连接:connect(this, SIGNAL(sendData(int)), this, SLOT(setV(int)));

你的槽函数:
void XXX::setV(int iValue)
{
   qDebug()<<iVlaue<<endl;  //这边的iValue就是你信号那么传过来的值,即x
}
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

信号函数是不需要实现的
setV(int a);是信号函数还是槽函数?


信号函数不需要实现?可以具体解释一下吗 setV是槽函数

信号函数只要定义了就可以。
比如在你的头文件有这样的一个信号函数:
signals:
   void sendData(int iValue);
然后你有一个这样的槽函数:
private slots:
   void setV(int iValue);

那么你在任何地方都可以直接发送这样的信号:
   emit sendData(x);    //x是一个整型数
  相关解决方案