在Qt中建立联系

时间:2011-04-02 07:47:38

标签: c++ qt connection

如果我想在Qt中建立如下连接:

QObject::connect(quitButton, SIGNAL(clicked()), &myapp, SLOT(quit());

&myapp在这里指的是什么?为什么要使用它?

感谢。

2 个答案:

答案 0 :(得分:2)

在这种情况下,您得到的是,只要quitButton发送点击的信号,它就会被发送到myapp中的广告位退出。如果名字意味着我认为这可能是一个按钮,那么......退出你的应用程序。

请注意,connect有不同版本。从单行代码中获取上下文很困难,但无论如何,您可能需要检查已代表您的应用程序的qApp

编辑:在你发来的另一篇文章中,我注意到你问了一个关于指针的琐碎问题。因此,如果这更多地关于&字符的含义,它将获取对象的地址。这是纯粹的C ++(没有特别针对Qt)。

答案 1 :(得分:1)

  

& myapp在这里指的是什么?为什么要使用它?

这是处理信号的对象(&取对象地址(即底层代码使用指针)。

  

QObject :: connect(quitButton,SIGNAL(clicked()),& myapp,SLOT(quit());

翻译:

当对象clicked上激活信号quitButton时 在对象quit上调用广告位myapp

这意味着什么:

信号只是某个内部状态发生变化时被对象调用的方法。在这种情况下,当鼠标单击用户界面元素时,对象将调用signal。

然后信号方法将调用已注册的所有(插槽)方法。因此,在这种情况下,当您单击按钮信号()被调用时,它将依次调用对象'myapp`上的quit()方法。

考虑到QT示例通常的方式。 myapp是一个应用程序对象,quit()方法将导致主线程退出exec()调用。