gpt4 book ai didi

c++ - 如何通过信号和槽发送数据?

转载 作者:行者123 更新时间:2023-11-30 01:54:33 25 4
gpt4 key购买 nike

有人可以帮忙连接信号和插槽吗?

我有 function1 接收实时数据(一个值)

void function1(int,double)
{
if(condition)
{
//some code
numb3 = 100;// double numb3 received new data
emit mySignal(numb3);
}
}

然后在其他函数中我得到了应该接收捕获值的变量

   void function2(int,double)
{

double parameter2 = numb3;
}

我试过这样的组合

Q_SIGNAL double mySignal(double newValue=0){return newValue;};
Q_SLOT double slot1(double param=0) {emit mySignal(param); };

and then in function2{
connect(customPlot,SIGNAL(mySignal()), qApp, SLOT(slot1()));
double parameter2 = slot1();}

但它们并没有像我希望的那样工作。

提前致谢!

最佳答案

在发出信号的类的 header 中定义您的自定义信号:

signals:
void signalName(paramType1,paramType2...);

在接收信号的类中定义接收信号的插槽:

public slots:
void slotName(paramType1,paramType2...) ; // Should be THE SAME parameter types

现在在您想要开始连接两者的 cpp 内部进行连接:

connect(classObjectWhereTheSignalIs, SIGNAL(signalName(paramType1,paramType2)),classObjectWhereTheSlotIs,SLOT(slotName(paramType1,paramType2)));

现在您可以随时发出这样的信号:

emit (signalName(paramOfTypeParamType1, paramOfTypeParamType2...));

干杯。

关于c++ - 如何通过信号和槽发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21894487/

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