QT中将QWidget提升为QMainWindow

简介

背景是曾经开发了一款软件,基类使用的是QWidget,随着软件的功能增加QWidget已经无法摆下太多的部件。因此,需要转换到QMainWindow下使用菜单和工具箱容纳更多的功能。

项目介绍:UI采用Qt设计师通过部件拖拽生成和布局。下面记录如何将这类的工程转化为QMainWindow基类。这里使用一种最简单粗暴有效的方式。

步骤

新建一个QMainWindow基类窗口

打开Qt设计师新建一个QMainWindow基类的窗口。
在这里插入图片描述
将默认类名MainWindow修改为自己的类名,下图右下角红框中是我工程里的QWidget基类的类名。这里保持一致会减少后续的代码修改量。改完类名后保存,文件名自己起一个合适的就行。
在这里插入图片描述
打开QWidget基类的UI文件,全选所有部件复制到新建的QMainWindow基类UI文件中。如下图所示,上面的UI是以QMainWindow为基类的UI文件。

在这里插入图片描述
将上面修改好的UI文件导入VS2013,如果是Qt Creator应该可以直接加载。导入后会自动生成相应的头文件。

修改代码

需要修改的代码,增加头文件

#include <QtWidgets/QMainWindow>		 //增加QMainWindow头文件
#include "ui_dinirawdatasimulation_mw.h" //自己UI文件导入后新生成的头文件

在这里插入图片描述

将下图中的QWidget修改为QMainWindow
在这里插入图片描述
将下图中的QWidget修改为QMainWindow
在这里插入图片描述

结语

经过上面的步骤,重新编译工程就可以了。然后就可以进一步修改新的窗口并调试功能了。

猜你喜欢

转载自blog.csdn.net/wokaowokaowokao12345/article/details/127464162