QT将基类从QDialog直接提升为QWidget窗口

前言:有时候建立新工程的时候把窗口的基类设置为了QDialog,比如说我,因为开始入门的时候一直是继承QDialog,所以后面也没有再注意到这个问题,后面发现QDialog实现的窗口不能实现缩放,所以后来就造成了现在的困扰,想要将其提升为QWidget窗口(不用移植到新工程)。

QDialog就是一个简单的消息框,和QMainwindow一样继承来自QWidget,先来看看三者之间的区别。
首先可以看到在这里有三个基类可以选择,分别是:QDialog QMainwindow QWidget

QT将基类从QDialog直接提升为QWidget窗口_第1张图片
QDialog 界面
QT将基类从QDialog直接提升为QWidget窗口_第2张图片
QMainwindow 界面
QT将基类从QDialog直接提升为QWidget窗口_第3张图片
QWidget界面
QT将基类从QDialog直接提升为QWidget窗口_第4张图片
下面就讲一下如何将窗口直接从从QDialog直接提升为QWidget窗口,只需要简单的几步:

环境: QT5.7 MSVC2013 WIN10

1、将初始化时定义的基类从QDialog变为QWidget,头文件和cpp文件都需改动,头文件中还需要添加QWidget的头文件
2、修改UI界面的头文件ui_dialog.h(或者其他的名称),将其中的QDialog变为QWidget,应该有两处
3、修改UI界面 .ui文件,用常用的文本编辑器打开就行,比如sublinme打开,该文件不能再QT creater 中修改,所以用其他方式打开,将其中的class=‘QDialog’ 修改 为class=’QWidget‘,此处如不修改的话,UI界面就还是默认使用’QDialog’ ,那么第二步中做的就白费了,还会被重新修改回来。

你可能感兴趣的:(QT开发)