###Qt创建项目时的QWidgets、QMainWindow、QDialog三者的区别是什么。
我们通过官方给出的Qt中类的继承图就可以看出:
QMainWindow和QDialog在第三行,第二行的QWidgets是前两者的基类。也就是说QMainWindow和QDialog是由QWidgets派生出来的,下面分别介绍三者:
**QWidgets:**是所有用户界面对象的基类,说白了也就是最基础的窗口类型,就是一个空白窗口,在这个窗口里面可以包含其他窗口组件(如按钮、文本框等),但它本身并不提供标题栏和菜单栏等高级功能。
**QMainWindow:**QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。就像我们平时用的比较成熟的软件一样,一般上面有菜单栏,侧面有工具栏或者底部有状态栏等。就比如Qt Creator自己本身就是一个类似的窗口。可以看出QMainWindow 是更为一般的窗口。
**QDialog:**是一个基于对话框的类,主要用于处理短期的任务与用户进行简短的沟通。就类似于我们点击某个按钮后,软件给我们弹出一个窗口,用来提示用户该干嘛。