我是Qt的全新手。在我阅读documentation时,我遇到了这样的配置:
connect( Object1, Signal1, Object2, slot1 )
connect( Object1, Signal1, Object2, slot2 )
这可能是什么用例?
来自Erlang / Python背景的我看起来很奇怪。它必须与C ++继承曲折相关。我想。
答案 0 :(得分:4)
这适用于您有一个按钮更改另一个按钮的两个部分的情况。这可能听起来很愚蠢,但它相当于从第一个插槽调用第二个插槽功能。
假设,单击播放/暂停按钮可使停止按钮处于活动状态或处于活动状态,并且还会更改工具提示。这可以通过一个插槽轻松完成,但您可能希望选项在其他时间独立完成。为了促进重用,您可以使用上述方法将一个信号连接到2个插槽。
答案 1 :(得分:3)
它允许其他对象分别触发slot1和slot2。
connect( Object1, Signal1, Object2, slot1 );
connect( Object1, Signal1, Object2, slot2 );
connect( Object3, Signal1, Object2, slot1 );
connect( Object4, Signal1, Object2, slot2 );
答案 2 :(得分:0)
它实际上是一种非常强大的MVC方式...假设您想要“连接”视图来侦听对象而不是发出数据......
您可以将PieChart视图连接到:
connect( MySourceModel, SIGNAL(newDataAreThere()), PieChartView, SLOT(notifyNewDataReceived()));
稍后在您的应用程序中,会创建另一个模块,并且还需要监听数据......没问题:
connect( MySourceModel, SIGNAL(newDataAreThere()), AnotherView, SLOT(notifyNewDataReceived()));
你可以连接/断开你的观点,模特甚至不知道谁在听他......这不是他的问题...
我希望我的小例子是可以理解的;)