不同类别的 2 个对象之间的信号/插槽



我有一个关于信号槽的问题:

我有一个文件userinterface.cpp,其中包含 2 个类的 2 个对象MoveSeriesChart

MoveSeries * MOVE_SERIES  ;
MOVE_SERIES = new MoveSeries( this);

Chart * CHART  ;
CHART  = new Chart ( this);

在我的userinterface.cpp中,我ui.Diagramm作为 Chart 类型的对象。

现在我想让ChartMoveSeries交流。我可以用userinterface.cpp中的直接信号槽来做到这一点吗?像这样:

 Userinterface.cpp:
   .
   .
   .
    connect(   ui.Diagram   , SIGNAL( send_BarValue( double val   )),
               MOVE_SERIES  , SLOT( on_BarValueReceived (double val) )) ;
   ...

或者我可以在 MoveSeries <-> UserinterfaceChart <-> 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) ;

这样,将进行编译时检查连接,从而减少您可能遇到的问题数量。

最新更新