根据链接中的博客和我自己需求:需要让静态函数发送信号,另外一个类接收,再发送信号,QML层接收
1:在自己调试时候,原来总是出现对象A非单一。
2:怎么也不能发送信号,this指针清楚是那个对象
3:最后这种方式,其实不是最佳
还希望懂的朋友说说如何优化
class A
.h头文件中定义一个
static A*mHandleScreen;
.cpp文件中这样做
A* A::mHandleScreen = NULL; //初始化
关键----
A::A(QObject *parent) : QObject(parent)
{
mHandleScreen = this; //将自己赋值给自己
}
(静态函数中)发信号----
emit mHandleScreen->sendCloseEditScreenId(count);
claas B
.cpp文件
构造函数
B::B(QObject *parent) : QObject(parent)
{
//TODO 使用 Q_GLOBAL_STATIC测试
A*handleScreen = new A;
connect(A::mHandleScreen, SIGNAL(sendCloseEditScreenId(int)), this, SLOT(receCloseScreenId(int)));
}
槽函数
void B::receCloseScreenId(int editScreenId)
{
emit sendCloseScreenId(editScreenId); //发送一个信号让QML层相应
}
QML层
//BB就是B class 注册进QML的别名,相当于实例化
BB{
id:BObj;
onSendCloseScreenId:{
//TODO
}
}