鱼C论坛

 找回密码
 立即注册
查看: 1270|回复: 2

qt 信号槽传值问题

[复制链接]
发表于 2022-1-18 22:16:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 feixiangQt 于 2022-1-18 22:18 编辑

各位大神有个问题请教
我有三个类
a是产生数据的
b是主窗口类
c是子窗口类

都继承了qobject 类

a产生数据后 通过信号槽传送子窗口可以吗?
c类与b类并无继承关系,c类是在b类中通过信号槽 clicked打开的

但是c类接受不到a产生的数据,请问 信号槽可以发送给子窗口吗?还是说必须通过主窗口才能传过去。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-20 09:14:13 | 显示全部楼层
你表达的不够详细啊,  a的数据要传给c    那 a类的对象保存在哪里呢?  b里?
如果b中存在a的对象的话
那就直接a中定义一个信号   c中定义一个槽函数
b中创建c的对象的时候 把a对象的信号与c的对象的槽函数connect一下就可以直接传过去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-20 09:19:42 | 显示全部楼层
本帖最后由 yuxijian2020 于 2022-1-20 09:23 编辑

举个栗子
class A
{
signals:
    void sendMsg(int data);
};

class B
{
    void clicked();
    
    A* pA;
};

class C
{
public:
    void onClassASendMsg(int data);
};

void B::clicked()
{
    C* pC = new C;
    connect(pA, &A::sendMsg, pC, &C::onClassASendMsg);
    c.show();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 16:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表