从QStandardItem
派生时,出现意外错误。我如何添加派生类是Add New >> C++ Class。选择基类作为QObject
,一旦创建了类,我就使用QObject
重命名了QStandardItem
。
#include <QStandardItem>
class XmlItem : public QStandardItem
{
Q_OBJECT
public:
//explicit XmlItem(QObject *parent = 0);
explicit XmlItem(QStandardItem *parent = 0);
signals:
public slots:
};
XmlItem::XmlItem(QStandardItem *parent) : QStandardItem()
{
}
这给出了以下错误(这些错误更多)
\debug\moc_XmliIem.cpp:64: error: C2039: 'staticMetaObject' : is not a member of 'QStandardItem'
\debug\moc_XmliIem.cpp:71: error: C2227: left of '->metaObject' must point to class/struct/union/generic type
\debug\moc_XmliIem.cpp:71: error: C2227: left of '->dynamicMetaObject' must point to class/struct/union/generic type
如果我注释掉
Q_OBJECT
,错误会消失,但是显然我需要它,因为我将有信号和插槽。为什么会出现这些错误,以及如何正确地从
QStandardItem
导出? 最佳答案
QStandardItem
不继承自QObject
为了能够在XmlItem
中使用信号/插槽,您需要自己从QObject继承,即:
class XmlItem : public QObject, public QStandardItem
{
Q_OBJECT
//...
};
关于c++ - 如何从QStandardItem子类化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35072709/