[转]QWidget QMainWindow QDialog的区别和相互转换

转载 2013年12月05日 14:12:46

转自:http://zxwmail.blog.163.com/blog/static/120947384201010611017114/

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


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

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

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

如果是顶级对话框,那就基于QDialog创建,如果是主窗体,那就基于QMainWindow,如果不确定,或者有可能作为顶级窗体,或有可能嵌入到其他窗体中,则基于QWidget创建。
当然了,实际中,你还可以基于任何其他部件类来派生。看实际需求了,比如QFrame、QStackedWidget等等。
注:摘自
http://www.kuqin.com/qtdocument/qwidget.html#details
http://www.kuqin.com/qtdocument/qmainwindow.html#details
http://www.kuqin.com/qtdocument/qdialog.html

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

PyQt中MainWindow, QWidget以及Dialog的区别和选择1. Qt界面分类在Qt Designer设计界面时,首先需要选择界面模板,主要分为三个类: 1. Main Window...
  • Mengwei_Ren
  • Mengwei_Ren
  • 2017年05月06日 23:49
  • 2400

Qt - QDialog,QWidget实现模态及非模态

转载自:  http://www.360doc.com/content/15/0825/16/20016257_494656595.shtml 在Qt中QDialog为“窗口”,而QWidget为“...
  • wadfji
  • wadfji
  • 2017年01月05日 20:03
  • 1712

QT中常见的类的继承的总结

如果需要设计界面,且需要菜单栏,工具栏,状态栏,一般继承QMainWidget 如果不要菜单栏,工具栏,状态栏等一般继承QDialog 如果需要自定义视图来画图形,则可以继承QAbstractIt...
  • helloworldprogram
  • helloworldprogram
  • 2013年11月20日 09:25
  • 1271

Qt使用总结(转)

特别声明:本文所有内容均来自 http://www.cnblogs.com/tornadomeet/archive/2012/08/09/2629661.html,非本人原创! Qt使用总结: 网...
  • u013782830
  • u013782830
  • 2016年05月13日 13:35
  • 2110

【Qt】QWidget、QDialog、QMainWindow的异同点【转】

简述 在分享所有基础知识之前,很有必要在这里介绍下常用的窗口-QWidget、QDialog、QMainWindow。 熟悉Qt的同学都应该知道,在新建Qt Widgets项目进行类信息选择时会碰到它...
  • mzy666888
  • mzy666888
  • 2016年02月22日 10:08
  • 559

关于QWidget和QDialog窗体居中的问题

最近开发中,遇到
  • u013394556
  • u013394556
  • 2014年10月23日 11:25
  • 2655

QWidget、QMainWindow、QDialog和QFrame的区别

继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog、QMainWindow、QFrame直接继承QWidget 类。 ...
  • zb872676223
  • zb872676223
  • 2014年03月31日 13:41
  • 17107

FileDialog::getOpenFileName()函数用法及FindDialog::FindDialog(QWidget *parent) :QDialog(parent)

转自http://www.cppblog.com/wicbnu/archive/2013/06/04/200790.aspx 为了说明QFileDialog::getOpenFileName()函数...
  • qingkongyeyue
  • qingkongyeyue
  • 2016年10月27日 18:11
  • 643

QWidget居中显示

转载请说明出处, 并附上原文链接http://blog.csdn.net/qq907482638/article/details/72189014.问题描述在Qt学习过程中,在让QDialog居中显示...
  • qq907482638
  • qq907482638
  • 2017年05月15日 18:23
  • 473

QT——QWidget、QMainWindow、 QDialog用法区别解析

QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件...
  • u014186096
  • u014186096
  • 2015年05月21日 10:05
  • 435
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转]QWidget QMainWindow QDialog的区别和相互转换
举报原因:
原因补充:

(最多只允许输入30个字)