`
qimo601
  • 浏览: 3446167 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

QT中QWidget、QDialog及QMainWindow的区别

    博客分类:
  • Qt
阅读更多

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

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

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

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

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

 

转载:http://www.cnblogs.com/aqxin/archive/2011/05/23/2054156.html

作者:小新 o(∩_∩)o ~

 

分享到:
评论

相关推荐

    QWidget,QMainWindow和QDialog的区别

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

    QT QDialog 圆角实现

    在QT编程中,QDialog是用于创建用户交互对话框的标准组件。当我们需要向用户提供特定信息或接收用户输入时,QDialog是一个非常实用的工具。在本篇内容中,我们将深入探讨如何实现QDialog的圆角效果,这通常涉及到...

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

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

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

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

    给QWidget加滚动条

    在Qt编程环境中,`QWidget`是基础的用户界面元素,用于构建复杂的图形用户界面。有时候,当`QWidget`内部的内容过大无法一次性显示时,我们可能需要为其添加滚动条以实现内容的平滑滚动。本教程将详细介绍如何为`...

    qt 界面跳转 界面跳转 界面跳转

    QT库提供了丰富的工具和组件来实现这一功能,主要依赖于信号与槽机制、QStackedWidget、QWizard以及QMainWindow与QDialog等窗口类的组合使用。下面将详细阐述这些知识点。 首先,信号与槽机制是QT的核心特性之一,...

    04 Qt核心窗口基类QWidget.zip

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

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

    - 在`MainWindow`的槽函数`on_pushButton_clicked()`中,使用`QDialog`或`QWidget`实例化`ChildWindow`。 - 使用`QObject::connect`函数将主窗口的信号连接到子窗口的槽。例如,你可以创建一个自定义信号`...

    不错的QDialog示例

    在Qt编程环境中,QDialog是Qt库中的一个关键类,用于创建弹出式对话框,它在用户界面设计中扮演着重要角色。QDialog不同于普通的QMainWindow或QWidget,因为它是临时性的,通常用来获取用户的输入或者显示一些警告或...

    qt-frameless无边框窗体类

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

    qt5 自定义标题栏

    在Qt中,QMainWindow是用于构建复杂用户界面的主要类,它包含了标题栏、菜单栏、工具栏和工作区。然而,为了自定义标题栏,我们通常需要创建一个新的QWidget作为窗口的上部,并在这个自定义的QWidget上实现标题栏的...

    Qt多界面跳转解决方案

    首先,理解Qt中的界面主要由QMainWindow、QWidget、QDialog等类构成。QMainWindow通常作为主窗口,提供菜单栏、工具栏和状态栏等功能,而QWidget可以作为自定义的空白面板,QDialog则用于弹出对话框。在多界面跳转中...

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

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

    基于Qt开发的人事管理系统代码

    开发者需要利用Qt的QWidget、QDialog、QMainWindow等类创建这些界面,并使用QLayout进行布局管理,确保界面美观且易于使用。对于数据输入,可以使用QLineEdit、QComboBox、QDateTimeEdit等控件;对于数据展示,...

    MainWindow和Dialog通过信号和槽通信

    在Qt编程环境中,`MainWindow`和`Dialog`窗口之间的通信是常见的操作,特别是在设计用户交互界面时。`MainWindow`通常作为应用程序的主要工作区域,而`Dialog`则用于展示临时性的信息或者进行特定的操作。本篇将详细...

    qt 无边框无标题栏可拖动窗口的实现

    在Qt中,`QWidget`是所有用户界面元素的基础类,而`QMainWindow`和`QDialog`是更高级的窗口类,它们通常具有标题栏、边框和关闭按钮等特性。为了创建无边框窗口,我们可以从`QWidget`直接派生一个新的类,并禁用其...

    Qt5开发及实例源代码

    `QWidget`是所有用户界面元素的基类,包括`QMainWindow`和各种子窗口如`QDialog`。控件如`QPushButton`、`QLineEdit`、`QLabel`等都继承自`QWidget`,它们提供了用户界面的基本功能。 布局管理器如`QLayout`是Qt5中...

    quitool_QT_qt界面漂亮_QT界面美化_qt漂亮界面_QTUI

    这个类通常继承自`QWidget`或`QMainWindow`,并包含了所有在`.ui`文件中定义的控件及其信号和槽函数。开发者可以在该头文件中添加额外的成员变量和方法,以实现更复杂的业务逻辑。 3. `frmquitool.cpp`:这是与`...

    qt 中文 文档 参考手册 初学必备

    5. **窗口和对话框**:讲解QMainWindow、QDialog、QWidget等窗口类,以及如何添加菜单、工具栏和状态栏。 6. **信号与槽**:解释Qt特有的信号和槽机制,如何连接它们以实现对象间的通信。 7. **事件处理**:讨论...

Global site tag (gtag.js) - Google Analytics