gpt4 book ai didi

c++ - Q_OBJECT 产生许多错误

转载 作者:行者123 更新时间:2023-11-30 01:19:56 24 4
gpt4 key购买 nike

这个类没问题:

#include <QThread>

class LiveImageItem : public QThread
{
Q_OBJECT
public:
LiveImageItem(QPixmap pimg);

signals:

public slots:

};

但是这个类遇到了与头文件中定义的“Q_OBJECT”宏相关的问题

#include <QGraphicsPixmapItem>

class LiveImageItem : public QGraphicsPixmapItem
{

Q_OBJECT //this line will generate many errors in compiling

public:
LiveImageItem(QPixmap pimg);

signals:

public slots:

};

他们的cpp文件是一样的:

#include "LiveImageItem.h"

LiveImageItem::LiveImageItem(QPixmap pimg)
{
}

我认为每个 QT 对象本质上都是从 QObject 继承的,所以如果我继承 QObject 的任何子类,我就可以拥有 QObject 提供的所有魔力。上面的第二个版本(继承自 QGraphicsPixmapItem)似乎证明我错了。编译的时候发现很多错误,都是moc文件(QT自动生成的)。会发生什么?

其中一些错误是:

  • [qobject.h] 错误:'QScopedPointer QObject::d_ptr' 是 protected
  • [moc_LiveImageItem.cpp] 错误:在此上下文中

  • ...

最佳答案

根据文档QGraphicsPixmapItem 不是QObject,因此您不能将其视为是。我会尝试扩展你的类继承并做:

class LiveImageItem : public QObject, public QGraphicsPixmapItem
{

Q_OBJECT //this line will generate many errors in compiling
[..]

关于c++ - Q_OBJECT 产生许多错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20139469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com