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 三个类的区别都应该有所了解了吧?都是属于界面划分的,希望你在学习的过程中,本篇文章能够帮你解决问题。

转自:http://mobile.51cto.com/symbian-269003.htm

转载于:https://www.cnblogs.com/bramely/p/3869051.html

QWidget QMainWindow QDialog 三者区别相关推荐

  1. 【PyQt】Qt中QMainWindow, QWidget以及QDialog的区别和选择

    PyQt中MainWindow, QWidget以及Dialog的区别和选择 1. Qt界面分类 在Qt Designer设计界面时,首先需要选择界面模板,主要分为三个类: 1. Main Windo ...

  2. QWidget,QMainWindow和QDialog的区别

    在创建Qt Gui Application时,总会让你选择在QWidget,QMainWindow和QDialog中选择一个Base Class. 这三个类具体有什么区别呢?在Qt的手册和网上找了一些 ...

  3. Python Qt GUI设计:QMainWindow、QWidget和QDialog窗口类(基础篇—10)

    目录 1. QMainWindow窗口 2.QWidget窗口 3.QDialog窗口 3.1.QMessageBox窗口 3.2.QInputDialog窗口 3.3.QFontDialog窗口 3 ...

  4. QWidget、QDialog、QMainWindow 的异同点

    简述 在分享所有基础知识之前,很有必要在这里介绍下常用的窗口 - QWidget.QDialog.QMainWindow. QWidget继承于QObject和QPaintDevice,QDialog ...

  5. PyQt5第一部分-窗口类:QWidget, QDeskWidget, QTabWidget, QMainWindow, QDialog

    0 前言 1 控件的几何数据 QRect,QPoint,QSize 1.1 方法列表 2 基本窗口 QWidget 2.1 方法列表 2.2 示例 第一个APP 3 桌面窗口 QDeskWidget ...

  6. Java 之String、StringBuffer 和 StringBuilder 三者区别介绍

    String:字符串常量,字符串长度不可变,StringBuffer:字符串变量(Synchronized,即线程安全),StringBuilder:字符串变量(非线程安全). String Stri ...

  7. C# 总结const、 readonly、 static三者区别:

    总结const. readonly. static三者区别: (有人问我,看似简单,我也没能立刻回答出来,总结一下,分享一下.) const:静态常量,也称编译时常量(compile-time con ...

  8. JavaScript中String的slice(),substr(),substring()三者区别

    JavaScript中String的slice(),substr(),substring()三者区别 共同之处 从给定的字符串中截取片段,并返回全新的这片段的字符串对象,且不会改动原字符串. 具体不同 ...

  9. 【C++容器】数组和vector、array三者区别和联系

    目录 一.数组 二.向量vector 三.数组与vector的对比 array和vector,数组三者区别和联系 共同点 不同点 作者:bandaoyu,本文不断更新,源文:https://blog. ...

  10. 互联网(internet)、因特网(Internet)、万维网(World Wide Web)三者区别

    互联网(internet).因特网(Internet).万维网(World Wide Web)三者区别 计算机网络 互连网 互联网 因特网 万维网 万维网与超文本系统 三者联系 计算机网络 简称网络. ...

最新文章

  1. OpsDev是什么?
  2. GraphDTA | 基于图卷积网络预测药物-靶标结合亲和力
  3. 使用chrome下载m3u8视频
  4. 走近webpack(3)--图片的处理
  5. Android sharedPreference设置缓存时间
  6. 工厂方法模式适用场景
  7. 【OpenCV 例程200篇】99. 修正阿尔法均值滤波器
  8. FIREDAC连接MSSQL 2000报不能支持连接MSSQL2000及更低版本的解决办法
  9. Android RecyclerView封装下拉刷新与上拉加载更多
  10. (0,eval)('this')与eval的区别
  11. GetCommandLineW()作用
  12. 阿里AI获NLP顶会比赛冠军,达摩院计划推出首个通才型AI医生
  13. MD5 + salt 的加密算法
  14. 跟着辛星认识一下PHP的自己主动载入
  15. Java关于数字的正则校验
  16. 嵌入式系统概述3-嵌入式系统的开发流程和学习基础、方法
  17. 如何解决 RecursionError: maximum recursion depth exceeded
  18. linux下刻录光盘读取不了_Linux下刻录光盘
  19. Java程序员进阶架构师的五个阶段,你到了哪各阶段?
  20. 每日单词20110603

热门文章

  1. IEEE-SA董事刘东:开放+开源将带来新一波SDNFV创新
  2. Fedora 25-64位操作系统中安装配置Hyperledger Fabric过程
  3. php基础:变量命名、传值、检测、类型转换、动态变量名
  4. java List的简单运用
  5. bash大括号参数扩展(Parameter Expansion)
  6. Arcgis Javascript API 开发笔记
  7. TCP_NODELAY详解
  8. 启用iptables后,连接速度很慢
  9. c c++函数资源释放时避免goto的方法
  10. 【代码优化】使用enum代替int常量