【qt】项目移植

news2024/11/28 11:31:11

项目移植

  • 一.前言
  • 二.同名问题
  • 三.具体操作
    • 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,就到这里了,拜了个拜!

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新材料正不断推动模具3D打印行业发展

随着工业4.0的浪潮席卷全球,模具制造行业也迎来了技术革新的新纪元。3D打印技术以其独特的制造优势,正逐渐在模具制造领域崭露头角。然而,要实现模具3D打印技术的广泛应用,高性能的打印材料是不可或缺的关键因素。 材料是模具3D打…

【机器学习】我们该如何评价GPT-4o?GPT-4o的技术能力分析以及前言探索

目录 🤦‍♀️GPT-4o是什么? 🚍GPT-4o的技术能力 1. 自然语言理解 2. 自然语言生成 3. 对话系统 4. 语言翻译 5. 文本纠错 6. 知识问答 7. 定制和微调 8. 透明性和可解释性 9. 扩展性 🚐版本对比分析 1. GPT-4标准版 …

AMD GPU ISA 阅读

Reading AMD GPU ISA — ROCm Blogs 对于应用开发者来说,了解用于执行其计算的 GPU 架构的指令集架构(ISA)通常是非常有帮助的。理解感兴趣的代码区域的指令可以帮助调试和实现应用程序的性能优化。 在这篇博客文章中,我们将讨论…

智能变电站网络报文记录及故障录波分析装置

是基于Intel X86、PowerPC、FPGA等技术的高度集成化的硬件平台,采用了高性能CPU无风扇散热、网络数据采集、高速数据压缩存储加密等多种技术,实现了高性能计算、多端口同步高速数据采集、数据实时分析、大容量数据存储等功能。 ● 在满足工业标准的同时&…

深度学习笔记: 最详尽广告点击预测系统设计

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 广告点击预测 1. 问题描述 建立一个机器学习模型来预测广告是否会被点击。 为了简化,我们不…

保姆级 | MySQL的安装配置教程(非常详细)

一、下载Mysql 官网步骤 MySQLhttps://www.mysql.com/进入官网首页 点击DOWNLOADS 点击MySQL Community (GPL) Downloads 点击 小页面直接进入 MySQL :: Download MySQL Installerhttps://dev.mysql.com/downloads/installer/点击“Download”下载最新版本,其他…

Java进阶_抽象类与方法

抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之…

程序员学习Processing和TouchDesigner视觉编程相关工具

Proessing Processing 是一种用于视觉艺术和创意编程的开发环境和编程语言。它最初是为了帮助非专业程序员学习编程,特别是那些对于创意编程和视觉表达感兴趣的人。Processing 提供了简单易用的 API,使得绘制图形、创建动画和交互式应用变得相对容易。 …

ssm615基于ssm的房源管理系统+vue【已测试】

前言:👩‍💻 计算机行业的同仁们,大家好!作为专注于Java领域多年的开发者,我非常理解实践案例的重要性。以下是一些我认为有助于提升你们技能的资源: 👩‍💻 SpringBoot…

DALL·E2最详细解读篇章

CLIP被证明其可以学习到鲁棒的图像特征,可以有效的捕获图像的语义和风格,且具有很强的zero-shot能力。另外,Diffusion是目前最优的生成式框架,其推动了图像、视频生成任务的最先进性能。Classifier-Free Diffusion指导技术以样本多…

H.264官方文档下载

H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。其官方文档可以在ITU官网上下载:https://www.…

Python一些小操作

矢量图 from matplotlib_inline import backend_inline backend_inline.set_matplotlib_formats(svg)matplotlib中文问题 import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"]["SimHei"] #设置字体 plt.rcParams["axes.unicode_minus…

wps:样式集的使用【笔记】

wps:样式集的使用【笔记】 前言版权推荐wps:样式集的使用1拿到一个内容模板2修改样式集3修改样式的详细说明4保存样式集5应用样式集 说明另外最后 前言 2024-6-5 23:36:20 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删除以…

未来AI大模型的发展趋势

大家好,我是小悟 未来AI大模型的发展趋势无疑将是多元化、高效化、普及化以及人性化。随着技术的飞速进步,AI大模型将在各个领域中展现出更加广泛和深入的应用,成为推动社会进步的重要力量。 多元化是AI大模型发展的重要方向。随着数据量的…

自然语言处理:第三十三章FILCO:过滤内容的RAG

文章链接: [2311.08377] Learning to Filter Context for Retrieval-Augmented Generation (arxiv.org) 项目地址: zorazrw/filco: [Preprint] Learning to Filter Context for Retrieval-Augmented Generaton (github.com) 在人工智能领域,尤其是在开放域问答和事…

10. MySQL 用户

文章目录 【 1. 权限表 】1.1 user 权限表1.1.1 用户列1.1.2 权限列1.1.3 安全列1.1.4 资源控制列 1.2 db 表用户列权限列 1.3 tables_priv 表1.4 columns_priv 表1.5 procs_priv表 【 2. 用户管理 】2.1 创建用户 CREATE USER2.2 用户的登陆、退出登陆 MySQL退出 MySQL 2.3 重…

React+TS前台项目实战(四)-- layout整体布局搭建

文章目录 前言一、Layout组件代码注释说明二、Content全局组件注释说明三、Header基础布局组件1. Header父级组件注释说明2. NavMenu导航子组件详细说明 四、效果展示总结 前言 本文主要讲Layout整体布局的构建以及全局内容盒子Content组件的使用。还包括了导航栏组件的基本封…

unity3d:GameFramework+xLua+Protobuf+lua-protobuf,生成.cs,.pb工具流

概述 1.区分lua,cs用的proto 2.proto生成cs,使用protogen.exe,通过csharp.xslt修改生成cs样式 3.proto生成lua加载.pb二进制文件,并生成.pb列表文件,用于初始化加载 4.协议id生成cs,lua中枚举 区分cs&…

Java Web学习笔记20——Ajax-Axios

Axios: 介绍:Axios对原生的Ajax进行封装,简化书写,快速开发。 官网:https://www.axios-http.cn Axios 入门: {}是Js的对象。 get的请求参数是在URL后面?和相关参数值。 post的请求参数是在请…

【线性代数】向量空间,子空间

向量空间 设V为n维向量的集合,如果V非空,且集合V对于向量的加法以及数乘两种运算封闭,那么就称集合V为向量空间 x,y是n维列向量。 x 向量组等价说明可以互相线性表示 向量组等价则生成的向量空间是一样的 子空间 例题18是三位向…