我有一个 boost 共享指针,它被传递给我的 QT 小部件,以便在更改某个变量时更新 GUI。但不知何故,我遇到了访问冲突异常 ..也许有人可以帮助我解决这个问题(请注意,kinectmanager 是不为空,我可以调用它的方法并做一些事情..):
这是发生错误的代码部分(在 CONNECT 函数中)
void MTBFWidget::setKinectHandler(KinectHandlerPtr km)
{
kinectmanager=km;
connect(kinectmanager.get(),SIGNAL(positionhaschanged(int)),this,SLOT(setslidervalue(int)));
}
在“MTBFWidget.h”中
class KinectHandler;
typedef boost::shared_ptr<KinectHandler> KinectHandlerPtr;
.
.
.
public slots:
void setslidervalue(int);
在“KinectHandler.h”中
signals:
void positionhaschanged(int value);
信号在 KinectHandler.cpp 中发出的位置:
reader.setPosition(position+3);
emit positionhaschanged(reader.getPosition());