zoukankan      html  css  js  c++  java
  • 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: 错误: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中将这个uiwidget或者dialog或者mainwindow的名字修改为错误里提及的“struct Ui::Widget”中的Widget。总之,要保持ui文件中class项的值与uiwidgetdialogmainwindowObjectName相同

  • 相关阅读:
    SpringCloud笔记(一)服务注册与发现
    个人备忘录
    ActiveMQ 消息持久化到Mysql数据库
    染色 [组合数 容斥]
    各种图床
    NOIP2012 疫情控制
    网格计数
    找钱 [多重背包 计数]
    序列[势能线段树]
    牛客挑战赛33 B-鸽天的放鸽序列
  • 原文地址:https://www.cnblogs.com/qixianyu/p/6894824.html
Copyright © 2011-2022 走看看