Qt/QML编程学习之心得:信号+槽(十三)
2023-12-14 12:45:34
Qt设计GUI界面应用程序,类似于Windows的Visual Studio设计界面,最主要的就是消息机制,如果vs下叫MFC机制,那么Qt就叫信号槽机制。MFC采用消息映射机制,每个类都有一个消息映射,与该类有关的消息都出现在该类的消息映射中。类的消息映射把一组消息映射宏组成一个消息映射表,每项消息映射宏都将一个函数和一个特定的消息关联起来,在出现给定的消息时,将调用对应的函数。
BEGIN_MESSAGE_MAP(CMFCView, CView)
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_MESSAGE(UserMessage,UserFun())
END_MESSAGE_MAP()
有些是系统消息如ID_FILE_PRINT,对应的管理消息处理函数就是CView::OnFilePrint,也可以自定义一个消息UserMessage,然后对应消息处理函数UserFun()。
而Qt中有个信号函数,它的作用只是发送消息,不知道谁接受,可能有一个接受,也可能有多个接收者。这样代码独立的非耦合的。
Qt中还有个槽函数,它是个普通函数,只管接收,不管通信,有信号给它,它就处理,不管谁发的怎么发的。
Qt中是谁把信号+槽对应起来的呢?就是QObject,信号函数和槽函数彼此不知道,由QObject把双方关联绑定起来的。比如一个按钮的点击信号,绑定到上层窗口的close关闭槽函数上,那么按钮点击关闭窗口。所以基本步骤是:
1、定义信号函数
2、定义槽函数
3、绑定信号函数和槽函数
4、
文章来源:https://blog.csdn.net/weixin_49369227/article/details/134988317
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!