当前位置:编程学习 > wap >>

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

例如在
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()));


--------------------------------------------------
上面是个人的一些思路,但是最终没有实现通信,求解。 --------------------编程问答-------------------- 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。 --------------------编程问答-------------------- 补充…… 在调用时:
若是第一种方法。
B b;
A A(b); --------------------编程问答-------------------- 知道receiver和sender的指针即可 当sender emit即调用receiver的slot --------------------编程问答--------------------
引用 3 楼 sryan 的回复:
知道receiver和sender的指针即可 当sender emit即调用receiver的slot

解释的很贴切! --------------------编程问答-------------------- a.cpp:
B *b=new B(this);
b.cpp:
connect(this,SIGNAL(mySignal()),parentWidget(),SLOT(rec()));
补充:移动开发 ,  Qt
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,