QT中QMainwindow 类与 QWidget类使用 VS2012 QT5.5

本人最近由于项目需要初学QT开发,但是在网络上寻找资料过程中发现,关于QT的开发介绍几本上是基于QT Creater的开发换进,基于VS开发环境的非常少。仅仅是讲到如何在VS下如何关联QT,或者如何设置VS下的QT的开发环境。

本文目的:

1、在关联好QT之后,如何在VS2012环境下开发自己的第一个程序。

2、在使用基类QMainwindow 类与 QWidget类进行界面开发时候的区别

一、开发环境

VS2012 QT5.5.0

二、工程建立

在新建工程过程中,需注意基类的选择,不然在程序编写过程中会出现,自己在网上找的现成的代码,复制到自己这里却不能用了

QT中QMainwindow 类与 QWidget类使用 VS2012 QT5.5_第1张图片

三、在使用QMainwindow与使用QWidget类时

最初写代码时候,我没有去管基类的问题,而是直接点下一步、下一步,可能这也是很多初学者的习惯。但是在写到界面布局部分,我发现我的布局部分的代码应该是对的,但是却运行效果和理想的不一致。


实际上为了实现一排按钮的功能,可以有很多种方法,生成按钮,用自动布局的三个子类进行布局也是不错的选择,如果用QWidget作为基类

QWidget: QGridLayout QHBoxLayout QVBoxLayout

需要实现的方式就比较简单。


如果是使用QMainWindow作为基类,就需要新建一个QWidget类作为最终显示时候布局的一个变量。因为可以在帮助下搜索QMainWindow,他的作用就是一个普通窗口类型,包含Menu 、Tools等其他类,但是QWidget就只是一个对话框,想要在QMainWindow下也显示QWidget下一样的布局,翻阅QMainWindow可发现

有这样一个函数

this->setCentralWidget(central);


通过这个函数,就可以把自定义的QWidget类central关联到主窗口之上。


四、QMainwindow 类与 QWidget类使用

在写界面程序的时候,两个类是都可以实现某一功能的,但是QMainwindow就相当于我们平时使用的所有的窗口,比较完整,提供菜单编辑,工具栏编辑等功能,但是QWidget就仅仅是实现对话框,和MFC的添加方式比较相似。

你可能感兴趣的:(QT中QMainwindow 类与 QWidget类使用 VS2012 QT5.5)