Loading... **Qt**中,通过Silder更改Spinbox可以直接通过信号槽实现,如下 ```CPP QObject::connect(slider, &QSlider::valueChanged,spinbox, &QSpinBox::setValue); ``` 但是当通过Spinbox更改Slider时会报错 ![error][1] 这时的解决办法就是通过函数指针。 >函数指针:函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。(百度百科) 上面问题的解决办法就是定义一个函数指针,然后指定形参,如下: ```CPP void (QSpinBox:: *siganl)(int) = &QSpinBox::valueChanged; //函数指针 QObject::connect(spinbox, siganl, slider, &QSlider::setValue); ``` ![2][2] 即可解决问题 ##2019-11-09补充: 今天翻到这篇文章,其实也没必用这种方法,直接用**Qt4**的**SIGNAL()**和**SLOT()**宏就完事了,填函数的时候记得加上形参就OK了~. [1]: https://www.oylong.com/usr/uploads/2019/04/1711839228.png [2]: https://www.oylong.com/usr/uploads/2019/04/597963157.png 最后修改:2019 年 11 月 09 日 09 : 11 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付