严格定义 Qt 自定义信号

移动开发
本文介绍的严格定义 Qt 自定义信号,自定义信号声明和使用必须严格一致,否则,可能无法成功发送、接收消息。先来看内容。

严格定义 Qt 自定义信号是本文要讲述的内容,最近在开发Ice、Qt项目时发现了这个问题。在Ice、Qt通信过程中需要使用自定义信号自定义信号声明和使用必须严格一致,否则,可能无法成功发送、接收消息。比如,在定义中:

  1. signals:  
  2.     void sendResponseSeq(const CoachStation::BusAttendanceSeq&); 

在使用中:

  1. qRegisterMetaType<CoachStation::BusAttendanceSeq>("CoachStation::BusAttendanceSeq");  
  2. connect(this, SIGNAL(sendResponseSeq(const CoachStation::BusAttendanceSeq&)),  
  3.     _widget, SLOT(OnIceResponseSeq(const CoachStation::BusAttendanceSeq&)), Qt::QueuedConnection); 

1、两者必须都为const,

2、如果有namespace的话,必须加严格限定。若

using namespace,然后在自定义信号中不带有命名空间的定义

这两种情况编译均能通过,但信号无法正常的发送、接收。

到目前为止,只在自己的项目中发现这个问题,并以此方式加以解决。但未更深入研究,不知是不是对其它情况也适用。现在记下来,做为备注吧。

小结:严格定义 Qt 自定义信号的内容介绍完了,在学习的过程中,总是会遇到很多的问题,那么最后希望本篇文章对你有所帮助。

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-05 18:51:51

QT 控件 鼠标

2011-06-20 16:03:03

Qt 控件 鼠标

2015-02-12 15:33:43

微信SDK

2015-02-12 15:38:26

微信SDK

2011-06-20 15:52:14

Qt Designer 控件

2016-12-26 15:25:59

Android自定义View

2009-07-06 16:59:26

JSP自定义标签

2016-11-16 21:55:55

源码分析自定义view androi

2021-11-23 15:06:42

Kubernetes 运维开源

2011-12-16 14:23:51

Java

2013-04-01 14:35:10

Android开发Android自定义x

2015-01-14 15:06:48

定义相机

2022-04-24 15:17:56

鸿蒙操作系统

2009-06-08 20:13:36

Eclipse自定义控

2010-09-14 16:47:23

SQL自定义函数

2013-04-19 10:14:24

2015-07-22 10:57:36

watchOS图表自定义

2013-06-27 11:10:01

iOS开发自定义UISlider

2023-09-06 10:33:40

夜莺监控数据库

2021-12-28 15:38:46

Traefik中间件插件
点赞
收藏

51CTO技术栈公众号