QWidget、QMainWindow、QDialog和QFrame的区别

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

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

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

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

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

QWidget、QDialog、QMainWindow的异同点

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

Qt窗口之QMainWindow、QDialog、QWidget

在 Qt 中,我们将窗口和控件统称为部件(Widget)。窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮、最大化按钮等;...
  • rl529014
  • rl529014
  • 2016年05月15日 21:31
  • 3298

QDialog QFrame QWidget QMainWindow区别

QWidget是小容器。可以往里面添加东西 QDialog是顶层窗口。不嵌入到其他父窗口里面。处理一些短时间任务。比如询问yes no cancel等...
  • groundhappy
  • groundhappy
  • 2016年03月23日 14:36
  • 991

QWidget、QMainWindow、QDialog和QFrame的区别

继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog、QMainWindow、QFrame直接继承QWidget 类。 ...
  • bzhxuexi
  • bzhxuexi
  • 2014年01月16日 16:12
  • 860

【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
  • 2652

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

转自:http://zxwmail.blog.163.com/blog/static/120947384201010611017114/ QWidget类是所有用户界面对象的基类。 窗口部件是用...
  • hailmy
  • hailmy
  • 2013年12月05日 14:12
  • 1315

QT中QMainWindow、QWidget、QDialog的区别

QT中QMainWindow、QWidget、QDialog的区别QT中QMainWindowQWidgetQDialog的区别 QMainWindow QWidget QDialog QMainWi...
  • x348722662
  • x348722662
  • 2016年03月21日 16:19
  • 5019

QFrame与QWidget的区别

从QWidget继承实现了一个自定义的widget,在设置样式表的时候发现没有生效,发现原来跟QFrame有关QFrame与QWidget的区别QFrame是基本控件的基类,QWidget是QFram...
  • tujiaw
  • tujiaw
  • 2016年06月04日 07:35
  • 11244

QWidget、QMainWindow、QDialog区别

QWidget、QMainWindow、QDialog区别 文档名称 QWidget、QMainWindow、QDialog区别 创建时间 20...
  • hbyzl
  • hbyzl
  • 2015年11月08日 20:32
  • 223

Qt中三个窗口基类(QMainWindow , QWidget , QDialoh)的区别

在平常qt开发中,通常要写自己的窗口类,那么这个窗口类该继承自哪个类呢? 下面就来看下三个窗口基类的区别 1.QMainWindow: QMainWindow类提供一个带有菜单条,工具条和一个状...
  • u011619422
  • u011619422
  • 2015年08月06日 09:13
  • 4629
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QWidget、QMainWindow、QDialog和QFrame的区别
举报原因:
原因补充:

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