Q_SLOTS/Q_SIGNALS与namespace
来源:互联网 发布:强制视频软件多少钱 编辑:程序博客网 时间:2024/05/21 17:17
类A中声明了一signal函数Test,
除了参数pt的签名使用了namespace外,没有特别的地方。
现在在B中增加一个slot用来接收A的signal:
现在这样测试:
b能收到a的signal吗?
函数签名从C++的角度看没啥问题,因为using namespace math后,可以找到point类型的定义。
有没有namespace,对Qt的moc来说,差别可就大了。qt_meta_stringdata中严格按照字符串来比较函数“签名”。定义的时候带namespace,而connect的时候不带,QMetaObject是不能正确的把信号传递下去的。
class A : public QObject
{
Q_OBJECT
Q_SIGNALS:
void Test(math::point pt);
}
{
Q_OBJECT
Q_SIGNALS:
void Test(math::point pt);
}
除了参数pt的签名使用了namespace外,没有特别的地方。
现在在B中增加一个slot用来接收A的signal:
class B : public QObject
{
Q_OBJECT
private Q_SLOTS:
void OnTest(math::point pt);
}
{
Q_OBJECT
private Q_SLOTS:
void OnTest(math::point pt);
}
现在这样测试:
void mytest(math::point pt)
{
using namespace math;
A a;
B b;
QObject::connect(&a, SIGNAL(Test(point)), &b, SLOT(OnTest(point));
a.Test(pt);
}
{
using namespace math;
A a;
B b;
QObject::connect(&a, SIGNAL(Test(point)), &b, SLOT(OnTest(point));
a.Test(pt);
}
b能收到a的signal吗?
函数签名从C++的角度看没啥问题,因为using namespace math后,可以找到point类型的定义。
有没有namespace,对Qt的moc来说,差别可就大了。qt_meta_stringdata中严格按照字符串来比较函数“签名”。定义的时候带namespace,而connect的时候不带,QMetaObject是不能正确的把信号传递下去的。
0 0
- Q_SLOTS/Q_SIGNALS与namespace
- Q_SIGNALS,Q_SLOTS, Q_EMIT
- XPATH与default namespace
- #include与using namespace
- using与namespace
- 宏与namespace
- NameService与NameSpace
- namespace 与 package
- namespace的认识与使用
- network namespace与veth pair
- network namespace 与veth pair
- 主机与namespace建立通信
- c++ include 与 using namespace
- php中namespace与use
- C# namespace与java package
- network namespace与veth pair
- NAMESPACE
- namespace
- 1元抢一加手机刘作虎:根绝内部职工与黄牛
- Spiral Matrix II
- 解决Struts2 json-plugin Date或Timestamp等日期格式带T的问题
- jquery 幻灯片轮播图
- python ConfigParser使用
- Q_SLOTS/Q_SIGNALS与namespace
- Eclipse拥有像VS2010一样的代码提示功能的设置方法
- 微信网页分享代码
- UNIX Load Average Part 1: How It Works
- 数据处理
- windows下,绿色版 tomcat6.0 安装法
- 读《狼牙山五壮士》有感
- 浅谈公安350兆集群通信网建设
- zoj3537 cake 区间dp+凸包