尝试在命名空间中定义 class 时出现问题(分配不完整的类型)

Issues while trying to define a class within a namespace (allocation of incomplete type)

我正在尝试在 Ui 名称space 中的 Qt 中创建一个 class。 以我的名义 space 我已经有 2 个 class 是用 Qt Designer 制作的,使用它作为参考并没有帮助我解决我的问题。

myclass.h我放

namespace Ui {class MyClass};

class MyClass : public QObject
{Q_OBJECT
private:
    Ui::MyClass* ui;

//body
}

然后在 myclass.cpp 中我输入

MyClass::MyClass(QObject *parent) :QObject(parent),ui (new Ui::MyClass) 
//Here I have : allocation of incomplete type 'Ui::MyClass' 
{
    ui->setupUi(this);       

//Here I have : member access into incomplete type Ui::MyClass'
}

我看到了 way of defining class in a namespace 但我没有找到解决我的错误的方法。

这看起来不像是 Qt 问题。这只是C++。要在命名空间中定义 class,只需将声明放在命名空间中:

namespace Ui 
{
class MyClass : public QObject
{
    Q_OBJECT
private:
    MyClass* ui;

}; // MyClass
} // Ui