gpt4 book ai didi

c++ - 如何从 QStandardItem 继承?

转载 作者:行者123 更新时间:2023-11-28 02:12:46 29 4
gpt4 key购买 nike

QStandardItem 派生时出现意外错误。我如何添加我的派生类是添加新>> C++ 类。选择基类作为 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/

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