feixiangQt 发表于 2022-1-18 22:16:17

qt 信号槽传值问题

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

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

都继承了qobject 类

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

但是c类接受不到a产生的数据,请问 信号槽可以发送给子窗口吗?还是说必须通过主窗口才能传过去。

yuxijian2020 发表于 2022-1-20 09:14:13

你表达的不够详细啊,a的数据要传给c    那 a类的对象保存在哪里呢?b里?
如果b中存在a的对象的话
那就直接a中定义一个信号   c中定义一个槽函数
b中创建c的对象的时候 把a对象的信号与c的对象的槽函数connect一下就可以直接传过去了

yuxijian2020 发表于 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();
}
页: [1]
查看完整版本: qt 信号槽传值问题