【qt】项目移植

项目移植

  • 一.前言
  • 二.同名问题
  • 三.具体操作
    • 1.修改文件名
    • 2.修改类名
    • 3.修改一些不能自动改的名
    • 4.修改.ui文件
    • 5.删除原来自动生成的ui_xxx.h文件
    • 6.修改头文件
  • 四.导入项目
  • 五.使用导入的项目
  • 六.项目建议

一.前言

终于概率论考完了,有时间了,接着上个项目,我们继续来完成我们的多窗口开发,但是这次,我们要将上上个项目的Mainwindow的窗口移植过来.所以这节课最重要的知识点是如何移植一个项目.

二.同名问题

当我们进行移植的时候,会有一个致命的问题那就是文件同名的问题,所以我们可以先将文件名修改好,再进行导入.
修改文件名,可不是你想的那么简单,毕竟有好多代码是qt自动生成的,那么修改就会有许多的细节!

三.具体操作

1.修改文件名

这就是咱们上上个项目:
在这里插入图片描述
同名:
在这里插入图片描述
所以不能进行直接的导入,姚先进行修改!
在这里插入图片描述
我就修改成了2
在这里插入图片描述

2.修改类名

进入头文件中去修改类名
在这里插入图片描述
在这里插入图片描述

3.修改一些不能自动改的名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.修改.ui文件

打开文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.删除原来自动生成的ui_xxx.h文件

在构造文件中就原来的这个自动生成的删除
在这里插入图片描述

6.修改头文件

在这里插入图片描述
然后敲一下锤子大功告成!
在这里插入图片描述
可以运行了:
在这里插入图片描述

四.导入项目

将这12个文件进行复制
在这里插入图片描述
复制到目标目录:
在这里插入图片描述
对项目添加现有文件
在这里插入图片描述
导入成功;
在这里插入图片描述

五.使用导入的项目

包含导入的头文件:
在这里插入图片描述
但是用不了
在这里插入图片描述
因为预处理就没有包含进去,所以我们这里也需要进行修改!
在这里插入图片描述
嵌入MainWindow的完整代码:

void MainWindow::on_action_Windows_triggered()
{
    MainWindow2*window=new MainWindow2(this);
    window->setAttribute(Qt::WA_DeleteOnClose);
    
    int ret=ui->tabWidget->addTab(window,QString::asprintf("窗口%d",ui->tabWidget->count()+1));
    ui->tabWidget->setCurrentIndex(ret);
}

运行结果:
在这里插入图片描述
但是我们的图片没有了,对action进行添加图片!
在这里插入图片描述
但是当我添加完图片的时候又报错了
在这里插入图片描述
这个报错的类型我能应该要记住,看到这个incomplete type我们应该就要想到ui文件的问题了
果不其然,进去修改为Mainwindow2
在这里插入图片描述
当我们修改完会出现:
在这里插入图片描述
点击Yes to All
OK,就有咱们的图片了
在这里插入图片描述

哈哈,独立的窗口就很简单了!

void MainWindow::on_action_WindowsIndent_triggered()
{
    MainWindow2*window=new MainWindow2(this);
    window->setAttribute(Qt::WA_DeleteOnClose);

    window->setWindowTitle("基于Mainwindow的独立窗口");
    window->show();//非模态的进行显示
}

运行结果:
在这里插入图片描述
这样,我们就完成了,哈哈哈!

六.项目建议

回到最开始,我们为什么要修改名字,导致这么多繁琐的步骤,因为我们的项目文件同名了,都是Mainwindow,所以我们必须进行修改!
所以说,当我们创建一个项目是尽量不要使用默认的类名字,方便后续的移植操作!
再说说多窗口开发,有没有感觉很厉害,可以无限套娃,mainwindow窗口里面有mainwindow窗口!

所以学到后期,可以尽情的发挥出您的想象力!

OK,就到这里了,拜了个拜!

平静的湖水不显波纹,稳定的情绪彰显智慧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/683686.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

谷云科技陆才慧:不是零ETL,而是零代码ETL丨数据猿专访

大数据产业创新服务媒体 ——聚焦数据 改变商业 数据集成,是将来自多个来源的数据整合到一个统一的平台,以实现集中管理和分析。它通过消除数据孤岛、提高数据质量,支持实时决策、增强数据分析能力。因此,数据集成在数据生命周期…

Qt CAN总线发送和接收案例

文章目录 设置比特率类设置比特率类实现 发送数据帧类发送数据帧类的实现m_ui 发送帧界面 连接类连接类实现连接类UI设计 主窗口类主窗口类实现主界面UI 整体UIQT案例 设置比特率类 // 文件: BitRateBox.h // 作用: 定义了一个用于选择比特率的组合框类 BitRateBox&#xff0c…

HR在线人才测评,如何判断候选人的学习能力?

在选拔人才的过程中,学习能力突出的候选人,能以非常快的速度适应工作环境,并且会在工作当中制定清晰的学习规划,不断的提升自己,不断的彰显个人在企业当中的价值,助力企业的长远发展。 只有选拔进来的人才…

【原创】springboot+mysql村务档案管理系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

【C#】多线程中,跨线程实现对UI控件更新

问题描述: “Cross-thread operation not valid :Control ‘listBox1’ accessed from a thread other than the thread it was created on” ,即“线程间操作无效,从不是创建控件“listbox1”的线程访问它。” 原因分析: UI控件…

零售行业运营有哪些业务场景?详解各业务场景的分析指标和维度

在当今这个数字化迅速发展的时代,零售行业正经历着前所未有的变革。传统的零售模式正在被新兴的技术和创新的业务场景所颠覆,消费者的需求和购物习惯也在不断地演变。零售行业的运营,作为连接消费者、产品和市场的关键环节,对于零…

06Docker-Compose和微服务部署

Docker-Compose 概述 Docker Compose通过一个单独的docker-compose.yml模板文件来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署 一般一个docker-compose.yml对应完整的项目,项目中的服务和中间件对应不同的容器 Compose文件实质就…

【CMake系列】05-静态库与动态库编译

在各种项目类型中,可能我们的项目就是一个 库 项目,向其他人提供 我们开发好的 库 (windows下的 dll /lib ; linux下的 .a / .so);有时候在一个项目中,我们对部分功能 打包成 库,方便在不同地方进行调用 静…

idea 常用插件推荐

文章目录 1、Lombok2、Convert YAML and Properties File3、Grep Console4、MyBatisX5、Free MyBatis Tool6、MyBatis Log EasyPlus (SQL拼接)7、MyBatisPlus8、Eclipse theme9、Eclipse Plus Theme10、Rainbow Brackets Lite - Free and OpenSource&…

MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅

MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅 文章目录 MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅地图的扭曲搜索餐厅浏览数据查找当前邻居查找附近所有餐厅查找一定距离内的餐厅使用$geoWithin,不排序使用…

上位机图像处理和嵌入式模块部署(f407 mcu中tf卡模拟u盘)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在f407开发板上面,本身是有一个usb接口的。这个usb接口也不仅仅是作为电源使用的,它还可以用来做很多的事情。一方面&#…

学Python,看一篇就够

学Python,看一篇就够 python基础注释变量标识符命名规则使用变量认识bugDebug工具打断点 数据类型输出转义字符输入输入语法输入的特点 转换数据类型pycharm交互运算符的分类赋值运算符复合赋值运算符比较运算符逻辑运算符拓展 条件语句单分支语法多分支语法拓展 if…

React中实现大模型的打字机效果

React 想实现一个打字机的效果,类似千问、Kimi 返回的效果。调用大模型时,模型的回答通常是流式输出的,如果等到模型所有的回答全部完成之后再展示给最终用户,交互效果不好,因为模型计算推理时间比较长。本文将采用原生…

Java1.8全套家政上门服务+springboot+ mysql +Thymeleaf 技术架构开发,家政APP系统在线派单,师傅入驻全套商业源码

Java1.8全套家政上门服务springboot mysql Thymeleaf 技术架构开发,家政APP系统在线派单,师傅入驻全套商业源码 家政预约上门小程序的实用性? 家政预约上门小程序的实用性主要体现在以下几个方面: 一、方便快捷的预约体验&#…

运行编译openjdk12-33

编译环境 ubuntu20 Ubuntu里用户可以自行选择安装GCC或CLang来进行编译,但必须确保最低的版本为GCC 4.8或者CLang 3.2以上,官方推荐使用GCC 7.8或者CLang 9.1来完成编译。 源码 https://github.com/openjdk/jdk/tree/jdk-12%2B33 安装gcc sudo apt…

气膜羽毛球馆如何提升运动体验—轻空间

随着人们对健康和运动的关注度日益增加,羽毛球作为一项受欢迎的运动,得到了越来越多人的喜爱。而气膜羽毛球馆,以其独特的优势,正在改变传统羽毛球馆的运动体验。那么,气膜羽毛球馆是如何提升运动体验的呢?…

白酒:全球化背景下产地白酒的国际竞争与合作

在全球化背景下,云仓酒庄豪迈白酒作为中国白酒的品牌之一,面临着国际竞争与合作的机遇与挑战。国际市场竞争的激烈以及消费者需求的多样化,要求云仓酒庄豪迈白酒不断提升品质、拓展市场以及加强国际合作,以提升品牌竞争力和市场份…

深度学习Day-19:DenseNet算法实战与解析

🍨 本文为:[🔗365天深度学习训练营] 中的学习记录博客 🍖 原作者:[K同学啊 | 接辅导、项目定制] 要求: 根据 Pytorch 代码,编写出 TensorFlow 代码研究 DenseNet 与 ResNetV 的区别改进思路是…

SBOM是如何帮助医疗器械制造商提高产品透明度的?

SBOM(软件物料清单)通过以下方式帮助医疗器械制造商提高产品透明度: 1. 详细记录软件组成 SBOM详细列出了医疗器械所使用的所有软件组件、版本、作者、许可证信息等。这使得制造商能够清晰地了解产品的软件组成,包括每个组件的来…

Plotly的魔力:如何用Python创建令人惊叹的图表?

大家好,在数据分析和可视化领域,图表是不可或缺的工具。它们可以帮助我们更直观地理解数据趋势和模式。今天,我们要介绍的是一个强大的Python库——Plotly,它可以让你轻松创建交互式、漂亮的图表。无论你是数据科学家、分析师&…