zoukankan      html  css  js  c++  java
  • 解决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同样

  • 相关阅读:
    谢尔排序(缩小增量排序)
    折半插入排序
    插入排序
    选择排序
    冒泡排序
    ul+js模拟select+改进
    ul+js模拟select
    前端面试题
    js数组去重的三种常用方法总结
    使用PHP实现文件上传和多文件上传
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/6846356.html
Copyright © 2011-2022 走看看