Qt中的窗口和对话框组件

Window and Dialog Widgets(窗口和子窗口)

注:本篇是对Qt中的窗口(window)和子窗口(widget)的介绍,原文来自于Qt5.5官方文档

一个widget,如果没有父窗口,那么我们称它为window。(尽管我们可以通过设置window flags来创建一个无边框窗口,但是通常情况下,一个window有一个边框和一个标题栏)。在Qt中,QMainWindwQDialog的子类都是最常见的窗口。

在一个应用程序中,窗口会在用户接口建立的的地方提供屏幕区域。通常,也是窗口将一个个的应用程序区分开来,而且提供了边框使用户能够调整其大小,把应用程序放置在自己喜欢的位置。一般情况下,窗口会被整合到桌面环境中,而且某些程度上受到桌面环境提供的窗口管理系统的控制。例如,选中的应用程序的窗口会显示在任务栏中(高亮显示)。

Primary and Secondary Windows(主窗口和子窗口)

任何没有父widget的widget都会成为一个窗口。而且在大多数的平台下都会被列在桌面的任务栏中。通常情况下,这就是唯一的被系统感知的窗口,即主窗口。

除此之外,一个拥有父widget的QWidget对象,可以通过设置Qt::Window 标志来成为一个window。基于窗口管理系统,这些子窗口(Secondary windows)通常位于他们对应的父窗口的前面,而且,在任务栏中不会出现它们。

QMainwonw 类在自己的构造函数中设置Qt::Window标志。QMainWindow被用来充当一个顶级窗口,而且提供了一些子窗口中不需要的工具。

Main Windows and Dialogs(主窗口和对话框)

Application Main Window提供了用于建立应用程序主要的用户接口框架,而该框架由QMainWindw创建。QMainWindw有着自己的布局,在这个布局中你可以添加菜单栏、工具栏,可停靠窗口以及状态栏。而其中心区域可以被任何QWidget类型对象占据。

QDialog,即对话框类窗口被用作子窗口时,可以提供给用户选项和选择。我们可以通过QDialog的子类,同时用一些widgets和layouts来实现用户接口。除此之外,Qt提供了一些现成的标准对话框,诸如文件保存或者打开对话框,字体选择对话框。

主窗口和对话框都可以通过Qt Designer或者Qt可视化设计工具来创建。使用Qt Designer比手写代码要更加快捷,也使得尝试不同的设计方法变得更加简单。通过Designer来创建Qt窗口,然后阅读由uic生成的代码是学习Qt极好的方法。

Window Geometry(窗口几何结构)

QWidget 提供了一些函数用来处理widget的几何结构。其中一些函数只会作用于用户区(即除去边框的窗口区域),而其他函数作用范围包括边框。他们之间的区别在于覆盖区域的不同。

包括窗口边框的函数:x(), y(), frameGeometry(), pos(), 和 move()

不包括窗口边框的函数:geometry(), width(), height(), rect(), 和 size().

需要指出的是,这些区别仅仅在于顶级窗口级别才有意义,因为对于所有的子窗口来说,窗口边框和窗口的用户区都是相同的。

下图非常清楚的显示了大部分函数的作用位置:

这里显示函数作用范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值