Qt之QWidget/QDialog/QMainWindow

QDialog

对话框为用户提供了许多选项和多种选择,允许用户把选项设置为他们喜欢的变量值并从中做出选择。之所以把它们称为对话框,或者简称为“对话”,是因为它们为用户和应用程序之间提供了一种可以相互“交谈”的交互方式。

QDialog类是对话框窗口的基类。对话框窗口是一个顶级窗口,通常用作短期任务,或者是与用户的简短会话等场合。对话框可以分为模态对话框和非模态对话框。使用QDialog或其子类创建的对话框窗口通常都有一个返回值,有时候还包含了一些默认的按钮。一般情况下,对话框窗口在其右下角都有一个用于控制其大小的伸缩手柄,在Qt应用程序中,这一般可以通过调用setSizeGripEnabled()方法来实现。
QDialog是所有对话框类的基类,它继承自QWidget,它的子类有QAbstractPrintDialog,QColorDialog,QErrorMessage,QFileDialog,QFontDialog,QInputDialog,QMessageBox,QPageSetupDialog,QPrintPreviewDialog,QProgressDialog,QWizard,以及来自Qt3的Q3FileDialog,Q3ProgressDialog,Q3TabDialog,Q3Wizard。

图一:QDialog与其子类的关系

QDialog与其子类的关系

图二:QDialog子类的描述

QDialog子类的描述

图三:一个dialog的样例展示

一个对话的样例展示

QMainWindow

Qt的QMainWindow类提供了一个应用程序主窗口,包括一个菜单栏(menubar)、多个工具栏(toolbars)、多个锚接部(dockwidgets)、一个状态栏(statusbar)以及一个中心部件(centralwidget)

图四:主窗口展示

主窗口展示

1.菜单栏
菜单是一系列命令的列表。菜单可以让用户浏览应用程序并且处理一些事务,上下文菜单和工具栏则提供了对那些经常使用的功能进行快速访问的方法,它们能够提高软件的使用效率。
为了实现菜单、工具栏按钮、键盘快捷方式等命令的一致性,Qt使用动作(Action)来表示这些命令。Qt的菜单就是由一系列的QAction动作对象构成的列表。而菜单栏则是包容菜单的容器,它通常位于主窗口的顶部,标题栏的下面。一个主窗口通常只有一个菜单栏。
2.工具栏
工具栏是由一系列的类似于按钮的动作排列而成的面板,它通常由一些经常使用的命令(动作)组成。工具栏的位置处在菜单栏下面、状态栏的上面,工具栏可以停靠在主窗口的上、下、左、右这4个不同的位置。一个主窗口可以有多个工具栏。
3.状态栏
状态栏通常是显示GUI应用程序的一些状态信息,它位于主窗口的最底部。可以在状态栏上添加、使用Qt窗口部件。一个主窗口只有一个状态栏。
4.锚接部件
对于一个标准的Qt主窗口而言,锚接部件不是必需的。锚接部件一般是作为一个容器来使用,以包容其他窗口部件来实现某些功能。比如Qt设计器的属性编辑器、对象监视器等都是由锚接部件包容其他的Qt窗口部件来实现的。它处在工具栏的内部,可以作为一个窗口自由的浮动在主窗口的上面,也可以像工具栏一样停靠在主窗口的左、右、上、下四个方向上。一个主窗口可以包含多个锚接部件。
5.中心窗口部件
中心窗口部件处在锚接部件的内部,它位于主窗口的中心,一个主窗口只有一个中心窗口部件。主窗口QMainWindow具有自己的布局管理器,因此在QMainWindow窗口上设置布局管理器或者创建一个父窗口部件为QMainWindow的布局管理器都是不允许的。但可以在主窗口的中心窗口部件上设置布局管理器。
6.上下文菜单
为了控制主窗口工具栏和锚接部件的显隐,在默认情况下,QMainWindow主窗口提供了一个上下文菜单(ContextMenu)。通常,通过在工具栏或锚接部件上单击鼠标右键就可以激活该上下文菜单;也可以通过函数CMainWindow::createPopupMenu()来激活该菜单。此外,还可以重写CMainWindow::createPopupMenu()函数,实现自定义的上下文菜单。

QWidget

QWidget类是所有用户界面对象的基类。

*如果需要嵌入到其他窗体中,则基于QWidget创建。
*如果是顶级对话框,则基于QDialog创建。
*如果是主窗体,则基于QMainWindow创建。

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt Widgets模块提供了一组UI元素来创建经典的桌面风格的用户界面。 1.Widgets概述 QWidget类是所有用户界面对象的基类。 头文件:要包含模块类的定义,请使用以下指令: #include 库文件:要链接模块,请将以下行添加到您的qmake .pro文件中: QT += widgets 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。 每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。 一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 5.3.1 QWidget简介 在 Qt 中,我们将窗口和控件统称为部件(Widget) QWidget类是所有用户界面对象的基类,被称为基础窗口部件。 像主窗口、对话框、标签、还有按钮、文本输入框等都是窗口部件。 这些部件可以接受用户输入,显示数据和状态信息,并且在屏幕上绘制自己。 5.3.2 窗口与控件 QT把没有嵌入到其它部件的部件称为窗口,一般窗口都有边框和标题栏,就像程序中的widget和label一样,QMainWindow和大量的QDialog子类是最一般的窗口类型,窗口就是没有父部件的部件,所以又称为顶级部件。 窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮、最大化按钮等。 控件是指按钮、复选框、文本框、表格、进度条等这些组成程序的基本元素。 一个程序可以有多个窗口,一个窗口也可以有多个控件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值