【qt】项目移植

简介: 【qt】项目移植

一.前言

终于概率论考完了,有时间了,接着上个项目,我们继续来完成我们的多窗口开发,但是这次,我们要将上上个项目的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,就到这里了,拜了个拜!

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

相关文章
|
2月前
|
网络协议 容器
【qt】 TCP编程小项目
【qt】 TCP编程小项目
48 0
|
2月前
【qt】平面CAD(计算机辅助设计 )项目 上
【qt】平面CAD(计算机辅助设计 )项目 上
40 0
|
2月前
【Qt项目专栏】贪吃蛇小游戏1.0
【Qt项目专栏】贪吃蛇小游戏1.0
78 5
|
2月前
CMake自动打包--Qt项目
CMake自动打包--Qt项目
49 0
|
2月前
|
数据安全/隐私保护
【qt】考试系统项目
【qt】考试系统项目
35 0
|
2月前
|
XML Linux 程序员
【Qt】项目代码
【Qt】项目代码
|
4月前
|
C++ Windows
第1个Qt项目:计算器
第1个Qt项目:计算器
第1个Qt项目:计算器
|
4月前
|
存储 编解码 Ubuntu
【QT】linux下alsa库的移植和QT中音视频的处理&笔记
【QT】linux下alsa库的移植和QT中音视频的处理&笔记
|
3月前
|
机器学习/深度学习 人工智能 计算机视觉
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
|
4月前
|
关系型数据库 MySQL 项目管理
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面