社区编辑申请
注册/登录
QWidget QMainWindow QDialog 三者区别
移动开发
Qt类是一个提供所需的像全局变量一样的大量不同的标识符的命名空间。通常情况下,你可以忽略这个类。QObject和一些其它类继承了它,所以在这个Qt命名空间中定义的所有标识符通常情况下都可以无限制的使用。

Qt类是一个提供所需的像全局变量一样的大量不同的标识符的命名空间。通常情况下,你可以忽略这个类。QObject和一些其它类继承了它,所以在这个Qt命名空间中定义的所有标识符通常情况下都可以无限制的使用。

QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。

QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围菜单、工具条和一个状态条。QMainWindow常常被继承,因为这使得封装中央部件、菜单和工具条以及窗口状态变得更容易。继承使创建当用户点击菜单项或者工具条按钮时被调用的槽成为可能。你也可以使用Qt设计器来创建主窗口。

QDialog类是对话框窗口的基类。对话框窗口是主要用于短期任务以及和用户进行简要通讯的***窗口。QDialog可以是模式的也可以是非模式的。QDialog支持扩展性并且可以提供返回值。它们可以有默认按钮。QDialog也可以有一个QSizeGrip在它的右下角,使用setSizeGripEnabled()。

QDialog 是最普通的***窗口。不被嵌入到一个父窗口部件的窗口部件被叫做***窗口部件。通常情况下,***窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建***窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的***窗口。

如果是***对话框,那就基于QDialog创建,如果是主窗体,那就基于QMainWindow,如果不确定,或者有可能作为***窗体,或有可能嵌入到其他窗体中,则基于QWidget创建。
当然了,实际中,你还可以基于任何其他部件类来派生。看实际需求了,比如QFrame、QStackedWidget等等。

小结:在Qt类中QWidget QMainWindow QDialog 三个类的区别都应该有所了解了吧?都是属于界面划分的,希望你在学习的过程中,本篇文章能够帮你解决问题。

【编辑推荐】

新手须知 QT类大全

初识Qt Object 类

Qt 平台中使GUI保持响应流畅

利用Qt绘图实现QWT绘制科学图表

特别推荐 大话移动开发之QT-Quick

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-20 17:17:11

Qt Widget QWidget

2011-06-16 11:13:13

QtQWidget

2011-06-28 10:55:02

QT QMainWindo 内存泄露

2011-07-04 16:12:00

QT QWidget

2011-06-21 18:02:14

Qt 动态 链接库

2011-06-28 11:05:19

Qt QWidget Eventable

2011-09-07 16:28:46

QT WidgetQWidget

2011-06-20 16:38:33

Qt QWidget Qt4.5

2011-07-04 16:20:54

QT 窗口 QWidget

2011-03-18 19:37:38

Eventable接口QtWidget

2011-06-17 10:19:11

Qt QWidge QSetting

2011-09-09 17:59:26

QT Widget

2011-07-01 14:20:59

Qt 事件

2011-07-04 14:00:11

QT QEvent

2011-06-13 15:09:36

插件 Qt Designer

2011-07-05 18:51:51

QT 控件 鼠标

2011-06-14 15:28:44

QT

2011-06-27 10:05:11

Qt Qt4.7.0 SDK

2011-06-15 14:38:01

QT 信号

2011-09-06 10:46:19

QT播放器

同话题下的热门内容

西瓜视频 iOS 播放器技术重构抖音支付十万级 TPS 流量发券实践2022 春节抖音视频红包系统设计与实现服乔布斯不服库克,苹果传奇设计团队解散内幕曝光专家:如何保护您的个人信息和Apple邮箱帐户苹果发布 iOS16 Beta 2!一起来看看更新了啥SwiftUI 状态管理系统指南Android系统中音视频播放技术探究

编辑推荐

2017年9月编程语言排行榜:Java、C与C++三巨头还能统治排行榜多久?初学者最容易学的六种编程语言CVPR 2017论文解读:特征金字塔网络FPN手把手教你搭建PHP版RabbitMQ消息队列开发环境及Demo实践微信小程序“反编译”实战(一):解包
我收藏的内容
点赞
收藏

51CTO技术栈公众号