QObject::connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(changeToGray(&preImage)));
上面这句我知道不对,可是要怎么样在点击pushButton的时候让后面的slots函数得到一个参数呢?
QT中信号与槽之间参数的问题
答案:3 悬赏:50 手机版
解决时间 2021-02-08 04:39
- 提问者网友:美人性情
- 2021-02-07 04:27
最佳答案
- 五星知识达人网友:春色三分
- 2021-02-07 05:05
你可以在槽中调用sender()这个函数获得一个QWidget类型的指针.这个指针指向出发这个槽的控件.
然后用static_cast(QWidget*) 把这个指针换成QCheckBox*类型.
然后就可以访问checkBox的name了.
函数都是手写的.有可能没写对不过大体思路如此了.
这样可以么?
然后用static_cast
然后就可以访问checkBox的name了.
函数都是手写的.有可能没写对不过大体思路如此了.
这样可以么?
全部回答
- 1楼网友:从此江山别
- 2021-02-07 07:56
可以这样 当点击信号发送后先相应一个不带参数的槽函数,在这个槽函数中,先做你要传递参数的实现(定义)之后用emit发送一个自己定义的信号(当然这个自定义的信号需要先声明),这个信号有参数(&preImage),让该信号关联你写的槽函数(changeToGray)便可以了! QQ:821446293
- 2楼网友:孤老序
- 2021-02-07 06:17
信号和槽如果要传递参数就要确保参数类型和个数的一致 你这里槽函数里面有形参 但信号里面并没有传递过来 所以就连接不到一起
而且连接的时候只要写明参数的类型就可以了 你这里tcpsocket应该是对象名吧 这样就不对了 举个例子 connect(btn, signal( clicked(bool) ), this, slot( onclicked( bool ) ));
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯