我有一个声明,声明是:
void removed(int sPI, int sWID , int ePI, int eWID);
我想将它连接到插槽两次,首先需要sPI和sWID参数,其他插槽需要ePI和eWID。插槽声明是:
void disconnect(int i, int wID = 0);
(我想删除时()发出,断开连接(sPI,sWID)并断开连接(ePI,eWID))
请帮我编写QObject :: connect()语句。 感谢。
答案 0 :(得分:1)
对于第一个,“断开连接(sPI,sWID)”,只需执行:
connect(x, SIGNAL(removed(int,int,int,int)), y, SLOT(disconnect(int,int)));
第三个和第四个参数将被忽略,并且将使用前两个调用disconnect。
第二次连接“断开连接(ePI,eWID)”是不可能的。您需要一个连接到removed()的中间槽:
声明:
Q_SLOTS:
void somethingRemoved(int, int, int, int);
定义:
void Foobar::somethingRemoved(int sPI, int sWID, int ePI, int eWID) {
disconnect(sPI, sWID);
disconnect(ePI, eWID);
}
连接:
connect(x, SIGNAL(removed(int,int,int,int)), foobar, SLOT(somethingRemoved(int,int,int,int)));