不同类之间怎么用信号和槽通信?

zhengwu66 2011-12-06 10:04:15
例如在
A.cpp中
public: signals:
void mySignal();

然后自己发送信号,
emit mySignal();


B.cpp中
定义槽
public slots:
void rec();

-------------------------------------------------
A *a = new A();
connect(a,SIGNAL(mySignal()),this,SLOT(rec()));


--------------------------------------------------
上面是个人的一些思路,但是最终没有实现通信,求解。
...全文
460 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
blueliuyun 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sryan 的回复:]
知道receiver和sender的指针即可 当sender emit即调用receiver的slot
[/Quote]
解释的很贴切!
sourire_will 2011-12-07
  • 打赏
  • 举报
回复
a.cpp:
B *b=new B(this);
b.cpp:
connect(this,SIGNAL(mySignal()),parentWidget(),SLOT(rec()));
碎炎 2011-12-06
  • 打赏
  • 举报
回复
知道receiver和sender的指针即可 当sender emit即调用receiver的slot
刀刀亮 2011-12-06
  • 打赏
  • 举报
回复
补充…… 在调用时:
若是第一种方法。
B b;
A A(b);
刀刀亮 2011-12-06
  • 打赏
  • 举报
回复
1.传入另一个类的指针
2.就是你想的这种方法。

A::A(B* myclass)
{
//第一种
m_myClass = new B;
connect(this,SIGNAL(display()),m_myClass,SLOT(display()));

//第二种
connect(this,SIGNAL(display()),myclass,SLOT(display()));
}

其中m_myClass是类A中的变量B *m_myClass。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧