解决Qt中'invalid use of incomplete type'错误:Ui::Users示例
解决Qt中'invalid use of incomplete type'错误:以Ui::Users为例
在Qt开发过程中,你可能会遇到如下错误信息:
G:\Qt\Smarthome_Client\users.cpp:9: error: invalid use of incomplete type 'class Ui::Users'
ui(new Ui::Users)
^
这个错误提示意味着你在使用Ui::Users之前,编译器并没有找到它的完整定义。
原因分析:
Qt的ui文件在编译时会生成对应的头文件(例如ui_users.h),其中包含了UI界面元素的定义。你需要在使用Ui::Users之前,确保包含了这个生成的ui_users.h头文件。
解决方案:
以下两种方法可以解决这个问题:
方法一:在users.cpp中包含头文件
在你的users.cpp文件中,添加以下两行代码:
#include 'users.h'
#include 'ui_users.h'
Users::Users(QWidget *parent) :
QWidget(parent),
ui(new Ui::Users)
{
ui->setupUi(this);
}
方法二:在users.h中包含头文件
你也可以选择在users.h头文件中包含ui_users.h:
#include <QWidget>
#include 'ui_users.h'
class Users : public QWidget
{
Q_OBJECT
public:
explicit Users(QWidget *parent = nullptr);
private:
Ui::Users *ui;
};
总结:
无论你选择哪种方法,关键在于确保在使用Ui::Users之前,包含了定义它的ui_users.h头文件。这将保证编译器能够找到Ui::Users的完整定义,从而避免'invalid use of incomplete type'错误。
原文地址: https://www.cveoy.top/t/topic/fAD1 著作权归作者所有。请勿转载和采集!