本来可以实现的,不懂为什么不行了。贴代码:
这样写 void Userinfo::on_closeBtn1_clicked() 和 connect(ui->closeBtn1,SIGNAL(clicked()),this,SLOT( closeBtn1_clicked() ));//closeBtn1_clicked()是新的槽函数................................这两种都不行
但是connect(ui->closeBtn1,SIGNAL(clicked()),this,SLOT( close() ));这样写又可以,折腾了好久都不懂为什么。新手求大神解答
qt自定义槽函数不起作用
答案:2 悬赏:60 手机版
解决时间 2021-03-07 05:15
- 提问者网友:饥饿走向夜
- 2021-03-06 13:57
最佳答案
- 五星知识达人网友:廢物販賣機
- 2021-03-06 15:12
源代码截个清晰图看看吧
全部回答
- 1楼网友:白昼之月
- 2021-03-06 16:30
可以的;前面需要添加特定的信号槽标识符
class myclass : public qobject {
// 这个宏一定要添加,否则无法使用信号槽
q_object
public:
myclass(){}
void publictestfunc() { emit signaltest(110);}
//-- 下面函数是自动的信号函数,无实体,定义即可 --//
signals:
void signaltest(int ncnt); // 可带参数,可不带
//-- 下面函数是自定义的槽函数,需要写实现方法 --//
slots:
void slttestfunc(int ncnt) {
qdebug() << "connect the signal: " << ncnt;
}
};
// 然后使用
myclass *test1 = new myclass();
myclass *test2 = new myclass();
connect(test1, signal(signaltest(int)), test2, slot(slttestfunc(int)));
// 然后用test1发送信号,test2接收
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯