如果我想在Qt
中建立如下连接:
QObject::connect(quitButton, SIGNAL(clicked()), &myapp, SLOT(quit());
&myapp
在这里指的是什么?为什么要使用它?
感谢。
答案 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()调用。