`

QWidget QMainWindow QDialog 之间的区别

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

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

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

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

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

相关推荐

    QWidget,QMainWindow和QDialog的区别

    QWidget、QMainWindow 和 QDialog 是 Qt 中三个基础的 GUI 组件类,它们之间的区别是非常重要的,在创建 Qt Gui Application 时,总会让你选择在 QWidget、QMainWindow 和 QDialog 中选择一个 Base Class。...

    python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择

    PyQt中MainWindow, QWidget以及Dialog的区别和选择 1. Qt界面分类 在Qt Designer设计界面时,首先需要选择界面模板,主要分为三个类: Main Window Widget Dialog 2. 三种模板的区别(官方文档介绍) MainWindow ...

    对PyQt5基本窗口控件 QMainWindow的使用详解

    QWidget QDialog QMainWindow QMainWindow可以包含菜单栏,工具栏,状态栏,标题栏等,是GUI程序的主窗口。 如果我们需要创建主窗口程序,就使用该类。 QDialog QDialog是对话框窗口的基类,对话框一般用来执行短期...

    PyQt5基本窗口控件—–QMainWindow

    在PyQt5中,提供了三种窗口类型,QMainWindow,QWidget和QDialog,三个类都是用来创建窗口的,可以直接使用,也可以继承后再使用 QMainWindow:包含菜单栏,工具栏,状态栏和标题栏。是最常见的窗口形式,通常被用作...

    给QWidget加滚动条

    你可以下载并研究这些代码,以便更深入地理解`QScrollArea`和`QWidget`之间的交互。通过这种方式,你不仅可以解决特定的“给QWidget加滚动条”的问题,还能进一步提升对Qt布局管理和用户界面设计的理解。

    QT QDialog 圆角实现

    与普通的QMainWindow不同,QDialog没有菜单栏、状态栏或者工具栏,它主要用于处理特定任务并关闭。为了实现圆角效果,我们需要对QDialog的边框进行处理,使其看起来更加友好和现代化。 实现QDialog圆角的关键在于...

    不错的QDialog示例

    QDialog不同于普通的QMainWindow或QWidget,因为它是临时性的,通常用来获取用户的输入或者显示一些警告或确认信息。在给定的“不错的QDialog示例”资源中,我们可以学习到如何有效地利用QDialog来提升应用程序的...

    一个简单的qt程序设置QWidget大小

    在创建一个Qt程序时,我们通常会继承`QWidget`或其子类,如`QMainWindow`、`QDialog`等,来构建我们的窗口或控件。本文将深入探讨如何在Qt中设置`QWidget`的大小,以及相关的布局管理。 首先,`QWidget`类提供了几...

    Qt多界面跳转解决方案

    在多界面跳转中,我们通常会在QMainWindow上设置不同的QWidget或QDialog作为子界面,通过显示和隐藏来实现界面切换。 1. **使用QStackedWidget进行界面管理** QStackedWidget是一种方便的容器部件,它可以存储多...

    qt-frameless无边框窗体类

    QT无边框窗体类,支持windows、linux、mac系统。支持windows自带阴影边框。支持自绘制阴影边框。windows上支持贴边自动半屏全屏...基于QWidget、QDialog、QMainWindow派生类,使用非常简单。最大化时拉动标题栏还原窗口

    (续2)Python3.x+Pyqt5实现主窗体(QMainWindow类)里的分割器QSplitter动态载入子窗体(QWidget类),实现了导航栏抽屉效果

    重点在于如何利用QMainWindow类作为主窗口,并通过QSplitter来动态加载子窗体(QWidget类)。此外,我们还将实现一个导航栏抽屉效果,增强用户交互体验。下面将详细解释这些关键知识点。 首先,QMainWindow是PyQt5...

    基于QT实现的翻金币游戏设计.zip

    在初始化各种窗口的时候,是选择QMainWindow,Qwidget,还是QDialog类型呢?这个主要看该窗口的功能,如果作为主窗口(比如交互窗口,游戏窗口)存在的话,选择QMainWindow类型最合适,因为QMainWindow可以搭载工具...

    04 Qt核心窗口基类QWidget.zip

    Qt库是跨平台的C++图形用户界面应用程序开发框架,被广泛用于创建...在后续的Qt视频教程中,你将逐步接触到更多高级的Qt组件和概念,如`QMainWindow`、`QDialog`、`QGraphicsView`等,以及更复杂的界面设计和应用架构。

    QT编程相关文档

    #### 一、QWidget、QMainWindow、QDialog 和 QFrame 的区别与应用 在 Qt 库中,提供了多个基础类用于构建图形用户界面 (GUI) 组件,包括 `QWidget`、`QMainWindow`、`QDialog` 和 `QFrame` 等。这些类各自拥有独特...

    qt--主窗口中按钮弹出子窗口,并把主窗口信号发送给子窗口

    这两个类通常是继承自`QWidget`或`QMainWindow`。主窗口中通常包含用户界面元素,如按钮,而子窗口则用来展示额外的信息或进行特定的操作。 1. **创建主窗口和子窗口**: - 使用`Qt Designer`创建UI文件,然后使用...

    samp6_3MultiWindow.zip

    1. 阅读Qt 6.3官方文档,理解基本的窗口和控件类,如QMainWindow、QWidget、QDialog等。 2. 分析" samp6_3MultiWindow "源代码,理解各个类的作用和它们之间的关系。 3. 使用Qt Creator或IDE,尝试运行和修改示例...

    untitled.zip

    在QT中,我们可以使用QMainWindow、QWidget或QDialog等基类创建自定义窗体。通过继承这些类并重写它们的方法,可以实现各种复杂的用户界面。在这个项目中,开发者可能定义了一个新的类,扩展了QMainWindow或QWidget...

    高级QT编程英文完整版源代码

    源代码中可能包含了各种复杂布局和组件的实现,例如QMainWindow、QWidget、QDialog、QMenuBar、QToolBar、QStatusBar等。 2. 事件处理:QT使用事件驱动模型,事件和事件过滤器是其核心机制。源代码会展示如何捕获和...

    本科毕设项目:C++语言,基于Qt Qwidget的学生管理系统.zip

    1. **窗口和布局管理**:QWidget类的子类,如QMainWindow、QDialog等,用于创建主窗口和对话框。使用QLayout(如QVBoxLayout、QHBoxLayout、QGridLayout)进行布局管理,使得控件在窗口中自动排列和调整大小。 2. *...

Global site tag (gtag.js) - Google Analytics