【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,就到这里了,拜了个拜!

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

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

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

相关文章

【Leetcode Python】

偷某间房屋时,累积金额等于间隔前两间房的金额加上当前房的金额数;不偷时,累计金额就等于前一间房的金额数。 状态转移方程:dp[i] max(dp[i-2]nums[i], dp[i-1]) 并且注意错误点:dp[1]有两间房时,初始值为…

汽车soa架构介绍

SOA 架构的基本概念 面向服务的架构(Service-Oriented Architecture,简称 SOA)是一种软件设计和架构风格,近年来在软件开发领域得到了广泛的关注和应用。 SOA 的定义可以概括为:它是一种将应用程序分解为一组松散耦合的服务的架构模式。这些服务通过定义明确的接口进行通…

【Pycharm】功能介绍

1.Code Reformat Code 格式化代码,可以帮助我们去自动调整空格等,根据python语法规范自动调整 2.Settings 1.创建py文件默认填充模版 3.读写py文件编码格式一致性 顶部代码指定的编码方式作用: 可以保证python2/3解释器在读取文件的时候按…

jmeter并发测试

目录 常用的压测工具jmeter安装配置并执行新建测试计划 Test Plan添加线程组练习01:共10个线程,每秒钟启动一个线程(需要10秒),每个线程发送两个请求练习02:共10个线程,1秒中内启动完毕&#xf…

03-3.2.2 队列的顺序存储实现

👋 Hi, I’m Beast Cheng👀 I’m interested in photography, hiking, landscape…🌱 I’m currently learning python, javascript, kotlin…📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…

kali中安装、卸载程序教程

1、安装教程 ①、使用apt安装 apt update (先更新apt) apt-get install xxxx(xxx为需要安装的软件名)②、使用dpkg安装 dpkg –i deb的软件包名(需要在软件包的目录下使用,不然就要把地址加上)二、卸载教程 ①、使…

hudi开启了流读,read.streaming.enabled为true,还需要设置查询类型吗 如snapshot

在使用 Apache Hudi 时,尤其是开启了流式读取(read.streaming.enabled 为 true),配置查询类型非常重要。查询类型决定了如何读取数据,尤其是在处理更新和删除操作时。 查询类型选项 在 Hudi 中,常见的查询…

ViewModel原理分析

认识 ViewModel ViewModel 是一种用来存储和管理UI相关数据的类。 ViewModel 的作用可以从两个方面去理解: UI界面控制器:在最初的MVC模式中,由于 Activity / Fragment 承担的职责过重,因此在后续的 MVP、MVVM 模式中&#xff…

基于JSP技术的人事管理系统

你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:浏览器(如360浏览器、谷歌浏览器、QQ浏览器等&#xff…

深度神经网络——什么是扩散模型?

1. 概述 在人工智能的浩瀚领域中,扩散模型正成为技术创新的先锋,它们彻底改变了我们处理复杂问题的方式,特别是在生成式人工智能方面。这些模型基于高斯过程、方差分析、微分方程和序列生成等坚实的数学理论构建。 业界巨头如Nvidia、Google…

【C语言】文件操作(下卷)

前言 在上一卷中,我们知道了文件指针、文件的打开和关闭(打开其他位置的文件)、文件的顺序读写(其中的fputc()、fgetc()),这一卷中,将继续讲解文件操作未讲到的地方。 内容有点多,…

人大金仓数据库报sys_user表字段不存在的问题

目录 一.问题: 二.原因 三.解决方法: 一.问题: 公司的一个项目从oracle切换到人大金仓之后,突然报了一个sys_user里面的字段不存在。 二.原因 检查了很多次确信sys_user表没问题,查了相应的文档之后发现原来人大金…

企业自建邮件系统的优势,安全性更高,功能更灵活,维护更便捷

在当今企业信息管理的浪潮中,企业邮件系统显得尤为关键,它不仅加强了内部的沟通效率,还对外展示了企业的专业形象。然而,传统租用企业邮箱服务存在一些不足,如缺乏灵活性、数据管理混乱和难以实现个性化需求&#xff0…

Wireshark 如何查找包含特定数据的数据帧

1、查找包含特定 string 的数据帧 使用如下指令: 双引号中所要查找的字符串 frame contains "xxx" 查找字符串 “heartbeat” 示例: 2、查找包含特定16进制的数据帧 使用如下指令: TCP:在TCP流中查找 tcp contai…

HOW - 面试技巧系列 - 全英文面试

自我介绍 “can you tell me a little bit about yourself?” “please introduce yourself.” 工作经验 “can you describe your most recent job experience?” “how does your experience make you a good fit for this position?” 职业规划 “what are your l…

C语言---指针part2

指针操作 一维 字符数组 1. 字符型数组 --- 存放字符串的 char s[] "hello"; [h ] <---0x1000 [e ] [l ] [l ] [o ] [\0] //谁能这块空间的地址 --- 数组名 s --->怎么能保存s所代表的地址值 //s数组名 --- 数组首元素的地址 &s[0] --->地…

谷歌浏览器使用--disable-web-security --user-data-dir解决跨域的解释

–disable-web-security 和 --user-data-dir 是Google Chrome&#xff08;及其开源版本Chromium&#xff09;浏览器在启动时可以使用的命令行参数。下面我将分别解释这两个参数的含义和用途&#xff1a; 1.–disable-web-security 含义&#xff1a;这个参数用于禁用Chrome浏览…

服务器数据恢复—raid5阵列上层XFS文件系统数据恢复案例

服务器存储数据恢复环境&#xff1a; 某品牌CX4-480型号服务器存储&#xff0c;该服务器存储内有一组由20块硬盘组建的raid5磁盘阵列&#xff1b;存储空间分配了1个lun。 服务器存储故障&#xff1a; 工作人员将服务器重装操作系统后&#xff0c;未知原因导致服务器操作系统层…

9. 媒体查询与响应式设计

随着移动设备和不同尺寸屏幕的普及&#xff0c;响应式设计成为前端开发的重要组成部分。响应式设计确保网页在不同设备上都有良好的用户体验。本章将详细介绍媒体查询的基础知识、语法与使用方法&#xff0c;以及如何运用CSS3实现响应式设计。 9.1 媒体查询基础 媒体查询是CS…

Flink协调器Coordinator及自定义Operator

Flink协调器Coordinator及自定义Operator 最近的项目开发过程中&#xff0c;使用到了Flink中的协调器以及自定义算子相关的内容&#xff0c;本篇文章主要介绍Flink中的协调器是什么&#xff0c;如何用&#xff0c;以及协调器与算子间的交互。 协调器Coordinator Flink中的协调…