gpt4 book ai didi

c++ - 插槽可以接受比信号提供的参数更少的参数,如何? -Qt

转载 作者:行者123 更新时间:2023-11-28 07:08:42 26 4
gpt4 key购买 nike

我有一个信号,它的声明是:

void removed(int sPI, int sWID , int ePI, int eWID);

我想将它连接到插槽两次,第一次需要 sPI 和 sWID 参数,其他插槽需要 ePI 和 eWID。插槽声明是:

void disconnect(int i, int wID = 0);

(我想要当 removed() 发出时,断开连接(sPI,sWID)并且断开连接(ePI,eWID))

请帮助我编写 QObject::connect() 语句。谢谢。

最佳答案

对于第一个,“断开连接(sPI,sWID)”,只需执行:

connect(x, SIGNAL(removed(int,int,int,int)), y, SLOT(disconnect(int,int)));

第三个和第四个参数将被忽略,disconnect 将与前两个一起调用。

第二个连接,“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)));

关于c++ - 插槽可以接受比信号提供的参数更少的参数,如何? -Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21363256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com