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;如何定义信号和槽 我这个定义哪里不对吗 初学 大神勿喷
------解决方案--------------------
信号函数只要定义了就可以。
比如在你的头文件有这样的一个信号函数:
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
}
------解决方案--------------------
信号函数是不需要实现的
setV(int a);是信号函数还是槽函数?
信号函数不需要实现?可以具体解释一下吗 setV是槽函数
信号函数只要定义了就可以。
比如在你的头文件有这样的一个信号函数:
signals:
void sendData(int iValue);
然后你有一个这样的槽函数:
private slots:
void setV(int iValue);
那么你在任何地方都可以直接发送这样的信号:
emit sendData(x); //x是一个整型数