找回密码
 立即注册
收起左侧

Qt中A类的槽函数,怎样就可以调用B类的私有变量 ,有什...

2
回复
8004
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2013-8-6 14:58:25 显示全部楼层 |阅读模式
2Qter豆
Qt中A类的槽函数,怎样就可以调用B类的私有变量  ,有什么方法?多谢


不管是使用友元还是使用get函数,能举个实例吗

最佳答案

查看完整内容

可以通过公有函数传递,在实例化对象时传递,信号量传递 class B { public: B(int data){m_B = data;} void funcB(int ); private: int m_B; //第三种信号 signals: void penChanged(QPen &pen); } void B::funcB(int data) { m_B = data; } class A { public: B *b; public slot: void funcA(); } void A::funcA(){ //第一种 int data; b->funcB(data); } int m ...
回复

使用道具 举报

累计签到:30 天
连续签到:1 天
2013-8-6 14:58:26 显示全部楼层
本帖最后由 永炎 于 2013-8-6 17:07 编辑

可以通过公有函数传递,在实例化对象时传递,信号量传递

class B
{
   public:
      B(int data){m_B = data;}
      void funcB(int );
   private:
      int m_B;
//第三种信号
  signals:
void penChanged(QPen &pen);
}
void B::funcB(int data)
{
    m_B = data;
}
class A
{
public:
    B *b;
public slot:
    void funcA();
}
void A::funcA(){
    //第一种
    int data;
    b->funcB(data);
   
}
int main(int argv,char *argc[])
{
   //第二种
    int data;
    B c (data);
}


第三种,发送信号,但这种本人目前只是用来触发槽函数的,传递私有变量用的是前面两种
signals:void penChanged(QPen &pen); //声明信号。
emit  penChanged(QPen &pen) ;//发出penChanged信号,你在其它地方只要有接收penChanged的槽就会被触发。

回复

使用道具 举报

累计签到:1571 天
连续签到:1 天
2013-8-6 16:25:33 显示全部楼层
可以用信号来传递值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了