movetothread处于可访问状态
movetothread is in accessible
我有以下类:
class commMonitor : QObject
{
Q_OBJECT
public:
commMonitor();
~commMonitor();
private:
QMap<unsigned short int, QTimer*> Monitors;
QTimer* currTimer;
public slots:
void createMonitor(unsigned short int);
void deleteMonitor(unsigned short int);
void startMonitor(unsigned short int);
void stopMonitor(unsigned short int);
};
当我尝试做以下事情时:
commMonitor* commOverWatch = new commMonitor();
QThread* monitorThread = new QThread();
commOverWatch->moveToThread(monitorThread);
visualstudio不会编译,错误是无法访问QObject::moveToThread。
这里出了什么问题?
在C++中,class commMonitor : QObject
表示私有继承(默认情况下),因此在您的情况下不能使用公共成员。我希望你熟悉继承规则。如果没有,请参阅此问题。正如您所看到的,在您的例子中,moveToThread()
是一个私有方法,当然您不能在类之外访问它。
解决方案:明确指定公共继承:
class commMonitor : public QObject
{
Q_OBJECT
public:
commMonitor();
~commMonitor();
private:
QMap<unsigned short int, QTimer*> Monitors;
QTimer* currTimer;
public slots:
void createMonitor(unsigned short int);
void deleteMonitor(unsigned short int);
void startMonitor(unsigned short int);
void stopMonitor(unsigned short int);
};
相关文章:
- 访问具有单状态的变体
- 如何在使用 Boost MSM 编写的状态机中直接访问任何状态
- 如何使用 freetype2 访问单色位图中的像素状态
- OpenGL 4.5 直接状态访问呈现三角形 - GL_INVALID_VALUE
- 无法访问 Arduino 结构字段。错误"退出状态 1。xxxx 不命名类型"
- 如何在 boost::msm 中实现可以访问状态机 (SM) 的后端/前端的"BaseState"
- 访问处于"移自"状态的对象
- 创建 Lua 状态时的访问冲突
- 从指针访问 Kaguya Lua 状态
- 无法访问/存储地图中的游戏状态对象
- 尝试访问类向量中的函数,而不更改向量的私有状态
- 在Boost Meta状态机的后端访问前端
- 如何在C++中访问与线程关联的机器状态
- movetothread处于可访问状态
- 添加节点时C++二叉搜索树状态访问冲突错误
- 通过静态变量从本机代码访问有状态托管对象
- JNI保留对对象的全局引用,并使用其他JNI方法访问它.在多个JNI调用中保持C++对象的活动状态
- Qt5 C++如何访问模型中的项目以检查状态
- 如何从阻塞上下文访问基于类的参与者的状态(C++ Actor 框架)
- 顶点缓冲区的直接状态访问