【发布时间】:2017-04-03 09:22:43
【问题描述】:
我有一个关于 Signal-Slots 的问题:
我有一个文件userinterface.cpp,其中有 2 个类 MoveSeries 和 Chart 的 2 个对象:
MoveSeries * MOVE_SERIES ;
MOVE_SERIES = new MoveSeries( this);
和
Chart * CHART ;
CHART = new Chart ( this);
在我的userinterface.cpp 中,我有ui.Diagramm 作为Chart 类型的对象。
现在我想让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 之间有信号槽吗?
谢谢!
【问题讨论】:
-
你试过你的解决方案了吗?如果是这样,您知道答案(是的,您可以这样做)
-
是的,我试过了,但是没用,所以这是我的第一个想法。现在我知道它可以工作了,看来我的参数有问题非常感谢!
-
是的,你可以。你甚至可以做信号到信号的连接。它对你不起作用?你能告诉我们你的代码吗?你确定 MOVE_SERIES 继承自 QObject 并定义了这个插槽吗? (对于 ui 表单,它是否定义了信号?)
-
尝试使用搜索框,甚至更好——阅读文档。
-
还要确保所有带有信号和插槽的类都具有
Q_OBJECT宏,否则将无法连接。通常连接问题(不是现有的slot等)在运行时会记录到控制台,你也可以看看。
标签: c++ qt signals-slots