Qt/QML编程学习之心得:信号+槽(十三)

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、

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 15:00:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 15:00:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 15:00:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 15:00:03       18 阅读

热门阅读

  1. 在vue中如何实现准时的setTimeout

    2023-12-15 15:00:03       35 阅读
  2. rust unresolved import‘xxx‘

    2023-12-15 15:00:03       45 阅读
  3. 国内一些高校科研院所在解包裹方面的创新

    2023-12-15 15:00:03       38 阅读
  4. Linux的时间同步命令

    2023-12-15 15:00:03       42 阅读
  5. 常见视频、图片格式及特点

    2023-12-15 15:00:03       44 阅读
  6. Hbase的Rowkey设计

    2023-12-15 15:00:03       36 阅读
  7. Android开发中将String数据写入本地文件

    2023-12-15 15:00:03       42 阅读
  8. IIS配置多域名跨域

    2023-12-15 15:00:03       70 阅读