QT中将QWidget提升为QMainWindow
Posted 大作家佚名
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
结语
经过上面的步骤,重新编译工程就可以了。然后就可以进一步修改新的窗口并调试功能了。
以上是关于QT中将QWidget提升为QMainWindow的主要内容,如果未能解决你的问题,请参考以下文章
C ++ QT如何从QMainWindow布局访问QWidget的公共类成员
QT QMainWindow窗口中添加 QWidget容器类 应该怎么添加?