错误 无法使用未定义类型“Ui::MainWidow“

2023-11-17

一、问题分析

在Qt Creator中创建Qt项目时,Creator会自动给你声明一个命名空间Ui

namespace Ui {class MainWindow;}

这是命名空间Ui里的一个类,类名是MainWindow,和你声明的MainWindow不是同一个东西

#ifndef MAINWINDOW_H
#define MAINWINDOW_H


#include <QMainWindow>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE


class MainWindow : public QMainWindow
{
    Q_OBJECT


public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();


private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

在mainwindow.cpp中使用赋值器给MainWindow的指针ui赋值

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)//给指针ui赋值

在Qt Creator里毫无问题,但是在VS里,问题就来了。
相同的语句,在VS里会报错

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
    
错误 无法使用未定义类型 "Ui::MainWindow"

好家伙,人家那儿行,怎么到你这儿就不行了?
于是我用命令行手动生成ui_MainWindow.h文件看了看
在这里插入图片描述
在这里插入图片描述
这里的pixPainter就是我的MainWindow,我给它改了个名字
???
你怎么多了个Class?
加上Class,编译通过

#include "pixPainter.h"
#include "ui_pixPainter.h"


pixPainter::pixPainter(QWidget *parent)
	: QMainWindow(parent),
	ui(new Ui::pixPainterClass)
{
	ui->setupUi(this);
}

分析

这可能与VS的Qt插件有关,我使用的版本是Qt Visual Studio Tools Version 2.4.3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误 无法使用未定义类型“Ui::MainWidow“ 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内

随机推荐

  • 使用eclipse创建JAVA项目

    打开eclipse软件 选择好工作区域 就是项目的储存地址 后登陆 File New Project 选择 Java Project 输入项目名称 点击Finish SRC是专门放java源代码的文件夹 就是你在IDE里编写的各个java类
  • C语言上机实验思路分享9

    实验项目名称 实验十 C 文件基本操作 实验目的及要求 1 掌握文件和文件指针的概念以及文件的定义方法 2 了解文件打开和关闭的概念和方法 3 掌握有关文件操作的函数 实验内容 方法和步骤 1 文件 stu info1 txt 包含学生的基
  • 模板型模板参数报错,无法调试通过,---《深入实践c++模板》例子

    include
  • 迪杰斯特拉算法求图的某个顶点到其他顶点的最短路径问题

    迪杰斯特拉算法 使用图的广度优先遍历算法 比如先从G点出发 找到能与G直接连接的顶点 然后才从与G最近的A出发 找到与A相邻的节点 通过比较G到每个顶点的距离大小 筛选出到每个点的最短路径 代码 迪杰斯特拉算法球最短路径问题 public
  • hdu 3966 Aragorn's Story

    Problem acm hdu edu cn showproblem php pid 3966 Reference 树链剖分 树链剖分原理 树链剖分详解及模板 HDU3966 树链剖分 Meaning 一棵 n 个点的树 每给结点有个值 三
  • BERT、BART、T5 等法学硕士的比较分析

    探索语言模型 介绍 在这篇博文中 我将讨论 BERT BART 和 T5 等大型语言模型 到 2020 年 法学硕士领域取得的重大进展包括这些模型的开发 BERT和T5是Google开发的 BART是Meta开发的 我将根据这些型号的发布日
  • css实现水平居中

    代码示例 div class box div class box1 div div 1 弹性布局 推荐 display flex 这些要添加在父级的 是父级的属性 父级添加display flex 父级添加justify content c
  • Zookeeper 基本操作

    Zookeeper 基本操作 文章目录 Zookeeper 基本操作 1 查看zk的运行状态 2 客户端连接zk 3 ls 查看 4 get 获取节点数据和更新信息 5 stat 获得节点的更新信息 6 ls2 ls命令和stat命令的整合
  • java localdate mysql_如何使用JDBC从java.sql.Date获取LocalDateTime对象?

    Java8的java time包提供了一个名为LocalDateTime的类 用于获取本地日期和时间的当前值 除日期和时间值外 还可以使用此字段来获取其他日期和时间字段 例如 一年中的某天 一周中的某天和一年中的某周 将java sql D
  • DIY简单的RTOS(一)

    说明 在看了很多关于RTOS的文章 一直想做一个简单的RTOS 苦于现有资料非常少 在看了很多关于现有RTOS的底层实现 再结合相关文章 完成一个简单的RTOS demo 代码难免有不合理之处 仅当个人学习做笔记使用 项目代码 什么是RTO
  • opencv图像的基础操作

    读取图像 cv imread 参数 要读取的图像 读取 式的标志 cv IMREAD COLOR 以彩 模式加载图像 任何图像的透明度都将被忽略 这是默认参数 cv IMREAD GRAYSCALE 以灰度模式加载图像 cv IMREAD
  • osgEarth的Rex引擎原理分析(五十一)osg::Program与osgEarth::VirtualProgram的关系

    目标 四十五 中的问题113 osgEarth VirtualProgram在apply时用到了osg Program 也就是VirtualProgram最终是要通过osg Program实现着色器功能 只不过VirtualProgram中
  • AI工具究竟是帮手还是对手?你怎么看,一起来聊聊吧!

    AI工具究竟是帮手还是对手 你怎么看 一起来聊聊吧 1 你现在正在哪个领域学习或工作呢 你用过哪些AI智能工具 2 作为行业人士或正在学习的学生 你认为AI工具的出现会提升你的工作或学习效率吗 3 对于AI智能工具的出现 我们应该做好哪些准
  • 51单片机(十四)—— 中断功能介绍

    中断是单片机的一个重要功能 本文我们就对51单片机的中断进行介绍 所谓 中断 通俗一点讲 就是单片机停止正在执行的任务 转去执行其它的急需解决的任务 当这个任务完成之后 在回到原来的任务继续执行 中断就是为了使单片机能够对外部或内部随机发生
  • Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]

    对呀对呀 回字有四样写法 你知道么 当时鲁大大如此讽刺孔乙己 意味着老孔这个被科举制毒害的人注意此种无用之物实在可悲 但是在Angular 2的世界中 很少存在无用之物 ngModel有三种写法 你知道吗 表单的设计永远都是应用的重头戏 而
  • HmacMd5加密算法

    package com haiyisoft evportal token action import java security MessageDigest import java security NoSuchAlgorithmExcep
  • java通配符有哪些

    java通配符有哪些 1 通配符 代表未知类型 代表不关心或无法确定实际操作的类型 一般与容器类配合使用 JavaScript public void testV List
  • ax = fig.gca(projection=‘3d‘)报错的解决方法

    最近在学习tensorflow 其中有使用matplotlib画一个3d图像的练习 跑代码时遇到以下问题 TypeError FigureBase gca got an unexpected keyword argument project
  • Java eclipse 错误:For input string

    1 错误描述 For input string 类路径 2 什么意思 参考资料可知 For input string 表示数据类型转换错误 当一个数据类型使用 toString 方法进行转换成字符串时 转换失败就会报这个错误 3 排除错误
  • 错误 无法使用未定义类型“Ui::MainWidow“

    一 问题分析 在Qt Creator中创建Qt项目时 Creator会自动给你声明一个命名空间Ui namespace Ui class MainWindow 这是命名空间Ui里的一个类 类名是MainWindow 和你声明的MainWin