65,187
社区成员




我重新描述一下问题吧,可能上面说的不是很清楚
一个加载整个文件夹的模块,加载之后,会赋值给渲染模块需要的数据,赋值完成之后,我希望默认去调用渲染模块的渲染功能,其实就是个按钮,
我想手动去触发一下。
遇到的几个问题:
1、渲染按钮的事件函数是受保护成员在其他类无法直接调用。
2、文件加载模块,无法直接引入渲染模块的头文件,但是可以通过添加依赖路径引入(但是这样会让当前模块嵌入了其他模块的东西,尽可能不想这样)
3、我试图创建友元,但是提示我创建友元无效。
4、破除2的限制之后并把事件函数改成公共函数,会导致其他地方的未解析符号问题,但是可以调用,只是调用并没有进入功能实现的逻辑,而是直接返回了
5、我尝试复制函数内容在文件模块实现,但是要用到 Q_D();标识符,里面会初始化一个d对象,但是我在文件模块是没有这个Q_D标识符的,也没办法初始化d对象
我只是c++新手,所以上面可能是我自己钻进死胡同了,希望大家能提出自己的意见[/quote][/quote]
这是我渲染模块的槽函数
QObject::connect(this->actionCenter, SIGNAL(triggered()),
q, SLOT(resetFocalPoint()));
// 你的意思就是在下面再加一个这种形式的吗?
QObject::connect(qIOManger, SIGNAL(loadNodes()),
q, SLOT(resetFocalPoint()));
class A{
signals:
void fileLoaded();
};
class B{
public slots:
void onFileLoaded(){
//内部调用渲染
}
};
class Core{
public:
Core(){
connect(a, SIGNAL(fileLoaded()), b,SLOT(onFileLoaded());
}
public:
A* a;
B* b;
};
我重新描述一下问题吧,可能上面说的不是很清楚
一个加载整个文件夹的模块,加载之后,会赋值给渲染模块需要的数据,赋值完成之后,我希望默认去调用渲染模块的渲染功能,其实就是个按钮,
我想手动去触发一下。
遇到的几个问题:
1、渲染按钮的事件函数是受保护成员在其他类无法直接调用。
2、文件加载模块,无法直接引入渲染模块的头文件,但是可以通过添加依赖路径引入(但是这样会让当前模块嵌入了其他模块的东西,尽可能不想这样)
3、我试图创建友元,但是提示我创建友元无效。
4、破除2的限制之后并把事件函数改成公共函数,会导致其他地方的未解析符号问题,但是可以调用,只是调用并没有进入功能实现的逻辑,而是直接返回了
5、我尝试复制函数内容在文件模块实现,但是要用到 Q_D();标识符,里面会初始化一个d对象,但是我在文件模块是没有这个Q_D标识符的,也没办法初始化d对象
我只是c++新手,所以上面可能是我自己钻进死胡同了,希望大家能提出自己的意见[/quote]