错误:ui_mainwindow.h:No such file or directory

神奇的MainWindow 对于Qt的初学者,对MainWindow总是很疑惑。首先就是,MainWindow和Ui::MainWindow是同一个东西吗?其次,MainWindow和控件Ui是怎么关联的呢?下面我们新建一个最简单的Test工程,仅仅包含main.cpp、MainWindow.h、MainWindow.cpp、MainWindow.ui四个文件。项目建好之后如下图示。 此时在mainwindow.h里,可以看到定义了一个类MainWindow和一个空间Ui: 这里出现两个MainWindow,就容易让初学者 阅读详情

如果出现此类错误,而且找不到 ui_mainwindow.h 文件

如果你有 mainwindow.ui 恭喜你,可以自己生成所需要的ui头文件

找到uic工具,运行下列命令即可得到ui头文件

uic mainwindow.ui -o ui_mainwindow.h 
-or-
uic mainwindow.ui > ui_mainwindow.h


其他ui头文件也可如此炮制。


注:

因为刚遇到这个问题,找这个文件找了大半天都未果,后来才看到这个方法,特此记录


参考资料:

http://www.qtforum.org/article/36860/how-to-generate-a-ui-filename-h-from-a-filename-ui.html

QT UI文件编译原理:从uic工具到界面与逻辑分离的实践指南 在GUI开发中,界面与业务逻辑的分离是提升代码可维护性的核心设计原则。QT框架通过元对象系统和资源管理机制,实现了可视化设计与代码生成的高效协同。其关键技术在于uic(用户界面编译器)工具,它能将XML格式的UI描述文件转换为标准的C++类,封装界面元素的创建与布局。这种技术方案不仅确保了类型安全,还通过自动化的信号槽连接机制简化了事件处理。在工程实践中,采用组合模式集成生成的UI类,能有效避免多重继承的复杂性,同时保持与QT Designer的无缝协作。对于需要动态换肤或插件化加载的场景,可结合QUiLo 阅读详情

相关推荐

Slint UI开发中图片资源路径问题的系统解决方案

在C++跨平台UI开发中,资源管理是一个基础且关键的工程问题,涉及编译时与运行时的路径解析机制。其核心原理在于理解构建系统(如CMake)如何处理资源文件,以及应用程序在不同部署环境(开发目录、系统安装目录)下的工作目录差异。正确的资源处理技术能显著提升应用的健壮性和可维护性,避免常见的“开发正常、发布失效”问题,尤其适用于桌面和嵌入式应用场景。本文聚焦于Slint框架,针对其特有的`@image-url`宏与C++项目结构的冲突,提供了从编译期资源嵌入到运行时动态路径映射的完整工程实践方案,有效解决了图片

weixin_34216107的博客 397

ui_mainwindow.h 在哪里

QT Creator打开.pro项目后,找不到ui_mainwindow.h,那么ui_mainwindow.h文件在哪里呢?中的setupUi()函数位于ui_mainwindow.h文件中;2.ui_mainwindow.h位于项目的Debug文件夹内。

zxf347085420的博客 2073

从PyCharm+Qt Designer切换到Qt Creator:如何正确设置项目以使用‘转到槽’功能

本文详细介绍了如何从PyCharm+Qt Designer迁移到Qt Creator,并正确设置项目以使用‘转到槽’功能。通过解析Qt项目的基本结构、创建规范项目、正确导入UI文件以及槽函数生成机制,帮助开发者解决常见的`no documents matching ui_xxx.h`报错问题,提升开发效率。

weixin_30915275的博客 343

error: ‘ui_mainwindow.h‘ file not found(ui头文件未创建)

问题:在刚好创建的Qt Designer Form Class类中,发现类的.cpp文件中有ui头文件未找到 原因:.ui文件中还未添加任何控件,导致ui头文件未创建而报错。 解决:在.ui文件中,任意添加控件,再讲工程重新构建,就会生成ui头文件,消除报错 ...

weixin_51625354的博客 2万+

Qt应用动态语言切换:实现不重启实时更新界面文本

在软件开发中,国际化(i18n)是构建全球化应用的关键环节,它使软件能够适配不同地区的语言和文化习惯。其核心原理是通过分离代码与显示文本,利用翻译系统在运行时根据用户语言环境动态加载对应的文本资源。这项技术能显著提升软件的国际竞争力与用户体验,尤其适用于需要面向多语言用户群体的桌面应用、嵌入式系统及移动应用。在Qt框架中,传统的多语言支持通常需要重启应用才能生效,这影响了用户体验的流畅性。本文聚焦于**动态语言切换**这一高级特性,深入探讨如何利用Qt的`QTranslator`、`LanguageChan

weixin_33716941的博客 424

Linux QT应用集成qrencode库实现二维码生成功能实战指南

二维码作为一种高效的信息载体技术,其核心原理是将数据编码成特定格式的矩阵图形,通过容错纠错算法确保信息可被可靠读取。在软件开发领域,集成成熟的二维码生成库是提升开发效率、保证功能稳定性的常见工程实践。对于基于C++的跨平台GUI应用开发,QT框架因其丰富的组件和良好的可移植性而被广泛采用。当需要在Linux桌面环境下为QT应用添加二维码生成能力时,qrencode库凭借其轻量、高效和清晰的C语言接口,成为理想的技术选型。本文将探讨如何通过CMake构建系统,在QT项目中无缝集成qrencode库,涵盖从环境

dezhen7015的博客 469

qwt使用显示没有头文件等错误(ui_mainwindow.h:23: 错误:qwt_dial.h: No such file or directory等)

最近今天在搭建qt环境,因为要统计数据等,需要用到qwt 1.开始时用新立德装的qt和一系列的软件(包括qwt) 2.新建后直接拖qwt控件,运行就会显示没有头文件等错误(ui_mainwindow.h:23: 错误:qwt_dial.h: No such file or directory等)等错误 3.后来卸载qwt又下的源码进行安装,卸载后创造器里没有qwt空件,没法使用 4.

道法自然 1万+

C++ Qt桌面应用开发与打包实战:从界面设计到独立可执行文件

桌面应用开发是软件工程中的重要领域,它涉及创建在用户本地计算机上运行的图形界面程序。其核心原理在于利用GUI框架将功能逻辑与用户界面分离,通过事件驱动模型响应用户交互。这项技术的价值在于能够提供高性能、高响应性和丰富的本地系统资源访问能力,适用于需要复杂数据处理或离线工作的场景。在众多GUI框架中,Qt凭借其成熟的C++类库和跨平台特性,成为开发桌面应用的主流选择之一。本文聚焦于Qt桌面应用开发与打包的完整流程,通过一个包含文件操作、数据可视化(图表)和配置管理的实战示例,详细拆解了从界面设计、功能编码到最

weixin_30835649的博客 381

无法打开包括文件: “ui_mainwindow.h”和源文件“GeneratedFiles\Debug\moc_mainwindow.cpp”

打开别人给的工程代码出现以下错误: (1)C1083 无法打开源文件: “GeneratedFiles\Debug\moc_mainwindow.cpp”: No such file or directory (2)C1083 无法打开包括文件: “ui_mainwindow.h”: No such file or directory 解决办法: (1) 在生

younibugudano的博客 2万+

Qt C++ 跨平台系统资源监控工具开发实战:从原理到实现

系统资源监控是理解计算机运行状态、进行性能分析与优化的基础技术。其核心原理在于通过操作系统提供的API或虚拟文件系统,实时获取CPU、内存、磁盘和网络等硬件资源的使用数据。在工程实践中,C++因其接近底层的特性,能够高效、直接地调用这些系统接口,确保数据采集的准确性与实时性。而Qt框架则提供了强大的跨平台GUI能力,使得开发者可以便捷地将采集到的数据通过图表、进度条等可视化组件进行展示,构建出功能完整、界面专业的桌面应用。这种结合特别适用于需要展示技术深度的课程设计或毕业设计项目。本文将以一个完整的系统资源

weixin_30847939的博客 337

QT6 Widget快速开发实战:从环境搭建到桌面应用部署

桌面应用开发是软件工程中的重要领域,其核心在于构建高效、稳定且跨平台的图形用户界面。QT框架作为C++领域成熟的GUI解决方案,通过其Widget模块提供了基于控件的命令式开发范式,实现了对界面元素的极致控制力与高性能渲染。QT6版本在继承这一经典架构的基础上,全面拥抱现代C++标准(如C++17/20)并采用CMake作为主流构建系统,显著提升了开发效率与代码安全性。其技术价值在于能够无缝集成现有C++代码库,特别适合开发数据处理密集型、工业控制及科学计算等传统桌面软件。在实际应用场景中,开发者可通过信号

weixin_34006965的博客 372

QT开发:UI文件生成C++代码的机制、配置与最佳实践

在GUI开发中,界面与逻辑的分离是提升可维护性的核心原则。QT框架通过元对象系统和资源管理机制,实现了将XML格式的界面描述文件(.ui)动态集成到C++项目中的高效方案。其核心原理是利用uic(User Interface Compiler)工具,在编译构建阶段将.ui文件转换为可被C++直接使用的头文件,从而在运行时通过setupUi()函数动态创建控件。这一技术方案的价值在于实现了真正的关注点分离,让界面设计师和业务逻辑开发者可以并行工作,同时为国际化、自定义控件集成等高级功能提供了标准化的支持。在工

weixin_30367873的博客 341

QT项目中ui_.h文件详解

ui文件实际是xml格式的,Qt编译时,先用uic工具将mainwindow.ui编译生成ui_mainwindow.h,转化为c++类,就是 Ui::MainWindow。之所以这样修改是应为在设计器中修改了顶层窗口的名称则编译后生成的ui_*.h文件中的类名称也发生了相应的变化,如果不做上述相关修改将出现编译出错的情况。从代码中可以看出在.ui文件中拖拽的控件是Ui::MainWindow类的public成员。Note:如果在如图所示的位置将顶层窗口的名称修改了。

qq_30725967的博客 6203

PyCharm里配置Qt Designer和PyUIC,让PyQt5界面开发效率翻倍(附避坑清单)

本文详细介绍了在PyCharm中配置Qt Designer和PyUIC以提升PyQt5界面开发效率的全流程指南。通过环境准备、工具链搭建、外部工具深度配置及高效工作流构建,开发者可实现可视化设计到自动生成的完整流程,大幅提升开发效率。特别包含路径定位技巧、常见错误排查及与OpenCV的深度集成方案。

痴迷无限好 473

R语言,charls数据库清洗、基线特征描述、logistics回归、rcs模型、森林图

【代码】R语言,charls数据库清洗、基线特征描述、logistics回归、rcs模型、森林图。

2402_87751128的博客 2513

一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

本文翻译、总结自朱俊伟的线上报告,主要讲了如何用机器学习生成图片。 来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告 人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artificial In...

gdymind的博客 6万+

CLion配置Qt开发环境:跨平台C++ GUI开发实战指南

CMake作为现代C++项目的主流构建系统,通过其模块化的配置机制,能够高效管理复杂的依赖关系。其核心原理在于通过find_package命令和CMAKE_PREFIX_PATH变量,实现第三方库的自动发现与集成。在GUI开发领域,Qt框架凭借其信号槽机制和丰富的UI组件,成为跨平台桌面应用开发的首选方案。将CMake与Qt结合,开发者可以利用CMAKE_AUTOMOC等自动化工具链,显著提升元对象编译等Qt特有流程的开发效率。本文以CLion这一智能C++ IDE为实践平台,详细解析如何通过CMake配置

anjichan4261的博客 431

别再翻手册了!用Materials Studio的Forcite模块,5步搞定复杂溶剂的溶解度参数计算

本文详细介绍了如何使用Materials Studio的Forcite模块,通过5个步骤快速计算复杂溶剂的溶解度参数。从分子建模、结构优化到分子动力学采样,再到最终的内聚能密度计算,该方法大幅提升了石油化工和高分子材料研发中的效率,避免了传统手册查阅和实验的繁琐过程。

weixin_28707739的博客 280

从静态库到动态库:CMake一键切换libpqxx构建模式,提升C++项目灵活性

本文详细介绍了如何通过CMake的`BUILD_SHARED_LIBS`参数实现libpqxx静态库与动态库的一键切换,提升C++项目的构建灵活性和部署效率。文章深入分析了静态库和动态库的核心差异,并提供了现代CMake集成libpqxx的最佳实践,帮助开发者根据项目需求选择最优构建模式。

sym19862006的专栏 406

OpenClaw 在 Docker 容器中的部署实战——零配置启动

本文介绍了OpenClaw在Docker容器中的快速部署方法,对比了本地部署与容器化部署的优势。通过官方镜像和Docker Compose两种方式,5分钟即可完成部署,并详细讲解了配置管理方案(挂载配置文件和环境变量)。文章还提供了飞书集成配置方法,以及生产环境下的日志管理、资源限制、健康检查等优化建议。最后包含常见问题排查指南,帮助开发者快速实现OpenClaw的容器化部署。

刘一说的IT专栏 906

FPGA经验谈系列文章——3、逻辑级数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx FPGA开发tips系列——前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的

gzy0506的博客 1万+
上一篇: VS2010编写动态链接库dll、使用dll 和 调试dll
下一篇: 破解的一个crackme,附注册机
小新110
博客等级 码龄21年 106粉丝 265原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值