当前位置: 首页 > news >正文

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

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

相关文章:

  • pdf添加书签的软件,分享3个实用的软件!
  • LLVM Cpu0 新后端6
  • 【HarmonyOS】HUAWEI DevEco Studio 下载地址汇总
  • SQL学习小记(六)将数据库中表为NULL的地方补上需要的值
  • NSSCTF中的popchains、level-up、 What is Web、 Interesting_http、 BabyUpload
  • 防火墙安全管理
  • 【数据分析基础】实验一 Python运算符、内置函数、序列基本用法
  • RabbitMQ 见解一
  • go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
  • 办理水文设施设计乙级资质如何对申报材料进行保护
  • Vue 路由传递参数 query、params
  • 鸿蒙轻内核M核源码分析系列二十 Newlib C
  • 文化融合,市场共赢:品牌海外推广中的符号与象征策略
  • Elixir学习笔记——二进制、字符串和字符列表
  • 《计算机组成原理》期末复习题节选
  • SAP PP学习笔记20 - 复习总结一下MTS,MTO,ATO的各种生产策略
  • MySQL实现同一语句中先查后改
  • Stable diffusion的SDXL模型,针不错!(含实操)
  • Python爬取城市空气质量数据
  • 软件测试--第十章 测试需求分析与测试计划
  • 印度袭击巴基斯坦已致至少3人死亡
  • 欧盟公布终止进口俄能源计划,2027年为最后期限
  • 云南省司法厅党委书记、厅长茶忠旺主动投案,正接受审查调查
  • 默茨在德国联邦议院第一轮投票中未能当选总理
  • 景点变回监狱,特朗普下令重新启用“恶魔岛”
  • 国产基因测序仪龙头华大智造业绩持续承压,今年有望迎来拐点?