gpt4 book ai didi

c++ - Qt:不完整类型和前向声明的无效使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:13 26 4
gpt4 key购买 nike

我有一些误解:

啊啊

#ifndef A_H
#define A_H

#include "B.h"

class A : public B
{
Q_OBJECT
public:
A();
};
#endif

A.cpp

#include "A.h"
A::A()
{
B::ui->blancH2->setValue(2);
}

B.h

#include <QWidget>
#ifndef B_H
#define B_H

namespace Ui {
class B;
}
class B
{
Q_OBJECT
public:
explicit B(QWidget *parent = 0);

public:
Ui::B *ui;
};

#endif

作为编译的结果,我有下一个错误:A.cpp:在构造函数“A::A()”中:无效使用不完整类型“class Ui::B”B.h: 'class Ui::B' 的前向声明

谁能解释为什么我有这个错误?

最佳答案

检查你的ui_B.h。在它的最后,你应该看到

namespace Ui {
class B: public Ui_B {};
}

如果不是,您可以在 Qt Designer 中打开 .ui 文件,选择您的小部件,然后在 Object Inspector 中,将“Object”下的字符串更改为“B”。如果您的小部件是对话框,则默认值为“对话框”。

不要直接修改ui_B.h,它是Qt编译器生成的,每次编译都会被覆盖。

关于c++ - Qt:不完整类型和前向声明的无效使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21113581/

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