解决QT:forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget" 等莫名奇妙错误

今天在进行QT Widget的UI设计时,改了下Widget的对象名,然后在多次成功编译运行后,执行清理,重新构建,就出现了好多莫名奇妙的错误:

widget.h:12: 错误:forward declaration of ‘struct Ui::Widget‘

widget.cpp:8: 错误:invalid use of incomplete type ‘struct Ui::Widget‘

网上搜索发现是每当你新键一个 QT设计界面, QT会自动生成yyy.ui文件,如Widget.ui,由于我直接新建的GUI程序,同时也生成了对应的类,Widget,这时我改变了UI的对象名,类里却仍然使用了Widget这个类名,因此会导致出错。

解决方法是,先把有moc生成的ui_widget.h(与xxx.ui对应的)删掉,然后将界面的对象名设置为,

namespace
Ui
{

class
Widget;

}

中对应的类名。也就时:在ui中将这个ui里widget或者dialog或者mainwindow的名字修改为错误里提及的“struct
Ui::Widget”中的Widget。总之,要保持ui文件中class项的值与ui中widget或dialog或mainwindow的ObjectName相同!

解决QT:forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget" 等莫名奇妙错误

时间: 2024-09-30 18:17:11

解决QT:forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget" 等莫名奇妙错误的相关文章

QT学习之forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget"

解决QT:forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget" 等莫名奇妙错误 今天在进行QT Widget的UI设计时,改了下Widget的对象名,然后在多次成功编译运行后,执行清理,重新构建,就出现了好多莫名奇妙的错误: widget.h:12: 错误:forward declaration of 'struct Ui::Widget' widget.cpp:8:

解决QT:forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget" 等莫名奇异错误

今天在进行QT Widget的UI设计时,改了下Widget的对象名,然后在多次成功编译执行后,执行清理,又一次构建,就出现了好多莫名奇异的错误: widget.h:12: 错误:forward declaration of 'struct Ui::Widget' widget.cpp:8: 错误:invalid use of incomplete type 'struct Ui::Widget' 网上搜索发现是每当你新键一个 QT设计界面, QT会自己主动生成yyy.ui文件,如Widget.

Receiver type 'XXX' for instance message is a forward declaration

今天遇到这个错误.刚开始字体太大,没显示全,后来调小字体之后看到了完整提示信息: 之后就忽然想起没引入相关的类,添加 #import "RDVTabBarItem.h" 就行了. Receiver type 'XXX' for instance message is a forward declaration

使用friend和forward declaration解决循环引用的问题

friend(友元)可以干什么 修饰对象之一:类 假如B是A的友元,B的成员函数可以访问A的所有成员,包括protect和private成员变量和成员函数,示例: class A { friend class B }; 修饰对象之二:普通函数 普通函数F是A的友元函数,则这个普通函数可以访问A的所有成员,示例: class A { friend void ::GlobalFunc(); } 修饰对象之三:其它类的成员函数 成员函数F是A的友元函数,则这个成员函数可以访问A的所有成员,示例: cl

forward declaration of class 错误

在使用Qt的时候遇到这个错误,查了一下发现,是因为我没有正确的使用前置声明. 1 #ifndef FIRSTPAGE_H 2 #define FIRSTPAGE_H 3 4 #include "ui_dialog.h" 5 //#include <QWizardPage> 6 class QWizardPage; 7 8 class FirstPage : public Ui::Dialog, public QWizardPage 9 { 10 public: 11 Fir

error: expected declaration specifiers or &#39;...&#39; before xxx(xxx是函数形参)

在使用带参有返回值的函数指针做参数时,编译出现下面情况 -------- error: expected declaration specifiers or '...' before 'FunType' 情形描述: a.h: typedef void (*FunType)(); void callFun(FunType p); a.c : #include "a.h" FunType myfuntype=NULL; void callFun(FunType p) { myfuntype

关于&quot;implicit declaration of function &#39;gettimeofday&#39; is invalid in c99&quot;的解决

http://blog.csdn.net/macmini/article/details/10503799 当我们使用 gettimeofday(&time, NULL);时,会出现这样一个WARNING Implicit declaration of function 'gettimeofday' is invalid in C99 而经过搜索之后发现只需加入 #include <sys/time.h> 这个头文件即可 关于"implicit declaration of

Receiver type ‘X’ for instance message is a forward declaration

本文出自:http://blog.csdn.net/svitter 实验环境:Myeclipse10 + tomcat7.0 有时间会写windows和linux下的tomcat配置,现在时间有限,暂且不写了..有些东西也是没有理解透彻. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <%@ page language="java" contentType="

解决Qt程序在Linux下无法输入中文的办法

一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Creator都无法支持.后面看了一些资料,了解了Qt应用程序的方法,这里和大家分享一下. 写一个bash脚本,内容如下: #!/bin/sh cd YourBinaryDirectory export QT_IM_MODULE=iBus ./YourProjectBinary 如果想让Qt Creator也能输入中文,那么可以这么写: #!/bi