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().

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

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

这里显示函数作用范围

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了使更多的Qt初学者能尽快入门Qt,也为了QtQt Creator的快速普及,我们花费大量精力写出了这一系列教程。虽然教程的知识可能很浅显,虽然教程的语言可能不规范,但是它却被数十万网友所认可。我们会将这一系列教程一直写下去,它将涉及Qt的方方面面 一、Qt Creator的安装和hello world程序的编写 二、Qt Creator编写多窗口程序 三、Qt Creator登录对话框 四、Qt Creator添加菜单图标 五、Qt Creator布局管理器的使用 六、Qt Creator实现文本编辑 七、Qt Creator实现文本查找 八、Qt Creator实现状态栏显示 九、Qt Creator鼠标键盘事件的处理实现自定义鼠标指针 十、Qt Creator实现定时器和产生随机数 十一、Qt 2D绘图(一)绘制简单图形 十二、Qt 2D绘图(二)渐变填充 十三、Qt 2D绘图(三)绘制文字 十四、Qt 2D绘图(四)绘制路径 十五、Qt 2D绘图(五)显示图片 十六、Qt 2D绘图(六)坐标系统 十七、Qt 2D绘图(七)Qt坐标系统深入 十八、Qt 2D绘图(八)涂鸦板 十九、Qt 2D绘图(九)双缓冲绘图简介 二十、Qt 2D绘图(十)图形视图框架简介 二十一、Qt数据库(一)简介 二十二、Qt数据库(二)添加MySQL数据库驱动插件 二十三、Qt数据库(三)利用QSqlQuery类执行SQL语句(一) 二十四、Qt数据库(四)利用QSqlQuery类执行SQL语句(二) 二十五、Qt数据库(五)QSqlQueryModel 二十六、Qt数据库(六)QSqlTableModel 二十七、Qt数据库(七)QSqlRelationalTableModel 二十八、Qt数据库(八)XML(一) 二十九、Qt数据库(九)XML(二) 三十、Qt数据库(十)XML(三) 三十一、Qt 4.7.0及Qt Creator 2.0 beta版安装全程图解 三十二、第一个Qt Quick程序(QML程序) 三十三、体验QML演示程序 三十四、Qt Quick Designer介绍 三十五、QML组件 三十六、QML项目之Image和BorderImage 三十七、Flipable、Flickable和状态与动画 三十八、QML视图 三十九、QtDeclarative模块 四十、使用Nokia Qt SDK开发Symbian和Maemo终端软件 四十一、Qt网络(一)简介 四十二、Qt网络(二)HTTP编程 四十三、Qt网络(三)FTP(一) 四十四、Qt网络(四)FTP(二) 四十五、Qt网络(五)获取本机网络信息 四十六、Qt网络(六)UDP 四十七、Qt网络(七)TCP(一) 四十八、Qt网络(八)TCP(二)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值