C++ 不同类别的2个对象之间的信号/插槽
我有一个关于信号槽的问题: 我有一个文件C++ 不同类别的2个对象之间的信号/插槽,c++,qt,signals-slots,C++,Qt,Signals Slots,我有一个关于信号槽的问题: 我有一个文件userinterface.cpp,它有两个类的对象MoveSeries和Chart: MoveSeries * MOVE_SERIES ; MOVE_SERIES = new MoveSeries( this); 及 在我的userinterface.cpp中,我将ui.diagram作为类型为Chart的对象 现在我想让图表与MoveSeries通信。我可以用userinterface.cpp中的直接信号插槽来完成吗?诸如此类: Userinte
userinterface.cpp
,它有两个类的对象MoveSeries
和Chart
:
MoveSeries * MOVE_SERIES ;
MOVE_SERIES = new MoveSeries( this);
及
在我的userinterface.cpp
中,我将ui.diagram
作为类型为Chart
的对象
现在我想让图表
与MoveSeries
通信。我可以用userinterface.cpp
中的直接信号插槽来完成吗?诸如此类:
Userinterface.cpp:
.
.
.
connect( ui.Diagram , SIGNAL( send_BarValue( double val )),
MOVE_SERIES , SLOT( on_BarValueReceived (double val) )) ;
...
或者我只能在MoveSeries
Userinterface
和Chart
Userinterface
之间设置信号槽吗
谢谢大家! 您的解决方案是可行的,但它的编写方式是错误的,您无法在连接信号或插槽调用上传递值,只能传递类型
connect(ui.Diagram , SIGNAL( send_BarValue(double)),
MOVE_SERIES ,SLOT( on_BarValueReceived (double) )) ;
但这也很糟糕,这是Qt4风格的连接,它可以编译和运行,但是如果您在那里输入了错误的内容,那么在构建tyme中不会出现错误
首选使用新的信号/插槽语法:
connect( ui.Diagram , &DiagramClass::end_BarValue,
MOVE_SERIES ,&MOVE_SERIESClass::on_BarValueReceived) ;
这样,将在编译时检查连接,减少可能遇到的问题数量。您的解决方案可以工作,但写入方式错误,您无法在连接信号或插槽调用上传递值,只能传递类型
connect(ui.Diagram , SIGNAL( send_BarValue(double)),
MOVE_SERIES ,SLOT( on_BarValueReceived (double) )) ;
但这也很糟糕,这是Qt4风格的连接,它可以编译和运行,但是如果您在那里输入了错误的内容,那么在构建tyme中不会出现错误
首选使用新的信号/插槽语法:
connect( ui.Diagram , &DiagramClass::end_BarValue,
MOVE_SERIES ,&MOVE_SERIESClass::on_BarValueReceived) ;
这样,将在编译时检查连接,减少可能遇到的问题。您尝试过解决方案吗?如果是的话,你知道答案(是的,你可以这么做)是的,我试过了,但没有成功,所以这是我的第一个想法。现在我知道它可以工作了,看来我的参数有问题,谢谢!是的,你可以。您甚至可以进行信号到信号的连接。它对你不起作用?你能给我们看看你的密码吗?是否确定MOVE_SERIES继承自QObject并定义了此插槽?(与ui表单相同,它是否定义了信号?)。通常连接问题(不存在插槽等)会在运行时记录到控制台,您也可以查看一下。您是否尝试过解决方案?如果是的话,你知道答案(是的,你可以这么做)是的,我试过了,但没有成功,所以这是我的第一个想法。现在我知道它可以工作了,看来我的参数有问题,谢谢!是的,你可以。您甚至可以进行信号到信号的连接。它对你不起作用?你能给我们看看你的密码吗?是否确定MOVE_SERIES继承自QObject并定义了此插槽?(与ui表单相同,它是否定义了信号?)。通常连接问题(不存在插槽等)会在运行时记录到控制台,您也可以查看一下。