C++界面开发框架Qt Widget - Window和对话框小部件入门指南
yuyutoo 2024-10-12 01:28 3 浏览 0 评论
未嵌入父窗口小部件的窗口小部件称为窗口(通常窗口有一个框架和一个标题栏,尽管也可以使用合适的窗口标志创建没有这种装饰的窗口),在Qt中,QMainWindow 和 QDialog的各种子类是最常见的窗口类型。
在应用程序中,窗口提供了构建用户界面的屏幕空间。 窗口在视觉上将应用程序彼此分开,并且通常提供窗口装饰,允许用户根据自己的喜好调整应用程序的大小和位置。窗口通常集成到桌面环境中,并且在某种程度上由桌面环境提供的窗口管理系统进行管理。 例如,应用程序的选定窗口显示在任务栏中。
QtitanRibbon官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载-慧都网
主要和次要窗口
任何没有父级的QWidget都将成为一个窗口,并且在大多数平台上都会在桌面的任务栏中列出,这通常只适用于应用程序中的一个窗口,即主窗口。
此外,通过设置 Qt::Window标志,具有父级的 QWidget 可以成为窗口。 根据窗口管理系统,这些辅助窗口通常堆叠在它们各自的父窗口之上,并且没有它们自己的任务栏条目。
QMainWindow 类在其构造函数中设置 Qt::Window 标志,因为它被设计为用作窗口并提供子部件不需要的设施。
主窗口和对话框
Application Main Window提供了构建应用程序主用户界面的框架,并通过子类化QMainWindow创建。QMainWindow 有自己的布局,您可以在其中添加菜单栏、工具栏、可停靠小部件和状态栏,中心区域可以被任何类型的 QWidget 占据。
对话框窗口用作向用户提供选项和选择的辅助窗口,对话框是通过继承 QDialog并使用小部件和布局来实现用户界面来创建的。此外,Qt 提供了许多现成的标准对话框,可用于文件或字体选择等标准任务。
主窗口和对话框都可以使用 Qt 的可视化设计工具 Qt Designer 创建,使用 Qt Designer 比手动编码要快得多,并且可以轻松测试不同的设计理念。
窗口几何
QWidget 提供了几个处理小部件几何形状的函数。 其中一些功能在纯客户区(即不包括窗框的窗口)上运行,其他功能包括窗框,区分以透明地涵盖最常见用法的方式进行。
- 引入窗口框架:x(), y(), frameGeometry(), pos(), and move()。
- 包括窗口框架:geometry(), width(), height(), rect(), and size()。
请注意,区别仅对装饰的顶级小部件很重要。 对于所有子窗口小部件,框架几何图形等于窗口小部件的客户端几何图形。
此图显示了大多数使用的功能:
X11 特点
在 X11 上,窗口在窗口管理器装饰之前没有框架。 这在调用 QWidget::show() 和窗口接收到的第一个绘制事件之后的某个时间点异步发生,或者根本不发生。 请记住,X11 是无策略的(其他人称之为灵活),因此您不能对窗口将获得的装饰框架做出任何安全的假设。
此外工具包不能简单地将窗口放置在屏幕上,Qt 所能做的就是向窗口管理器发送某些提示。窗口管理器是一个单独的进程,可能会服从、忽略或误解它们,由于部分不明确的客户端通信约定手册 (ICCCM),在现有窗口管理器中处理窗口放置的方式非常不同。
一旦窗户被装饰,X11 没有提供标准或简单的方法来获取框架几何形状。 Qt 用漂亮的启发式方法和聪明的代码解决了这个问题,这些代码适用于当今存在的各种窗口管理器。
X11 也不提供最大化窗口的方法,QWidget::showMaximized() 必须模拟该功能。 它的结果取决于QWidget::frameGeometry() 的结果和窗口管理器正确放置窗口的能力,这两者都不能保证。
Qt商用组件推荐
- QtitanRibbon - Ribbon UI组件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,QtitanRibbon致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
- QtitanChart - Qt类图表组件:是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。
- QtitanDataGrid - Qt网格组件:提供了一套完整的标准 QTableView 函数和传统组件无法实现的独特功能。使您能够将不同来源的各类数据加载到一个快速、灵活且功能强大的可编辑网格中,支持排序、分组、报告、创建带状列、拖放按钮和许多其他方便的功能。
- QtitanNavigation:QtitanNavigationDesignUI 组件是一组 GUI 控件,它实现了菜单、导航框、命令栏等导航界面,并让您以更少的滚动和点击次数有效地查看所有实体(工作区、网格或其他项目)。
- QtitanDocking:允许您像 Visual Studio 一样为您的伟大应用程序配备可停靠面板和可停靠工具栏。黑色、白色、蓝色调色板完全支持 Visual Studio 2019 主题!
相关推荐
- 如何在HTML中使用JavaScript:从基础到高级的全面指南!
-
“这里是云端源想IT,帮你...
- 推荐9个Github上热门的CSS开源框架
-
大家好,我是Echa。...
- 硬核!知网首篇被引过万的论文讲了啥?作者什么来头?
-
整理|袁小华近日,知网首篇被引量破万的中文论文及其作者备受关注。知网中心网站数据显示,截至2021年7月23日,由华南师范大学教授温忠麟等人发表在《心理学报》2004年05期上的学术论文“中介效应检验...
- 为什么我推荐使用JSX开发Vue3_为什么用vue不用jquery
-
在很长的一段时间中,Vue官方都以简单上手作为其推广的重点。这确实给Vue带来了非常大的用户量,尤其是最追求需求开发效率,往往不那么在意工程代码质量的国内中小企业中,Vue占据的份额极速增长...
-
- 【干货】一文详解html和css,前端开发需要哪些技术?
-
网站开发简介...
-
2025-02-20 18:34 yuyutoo
- 分享几个css实用技巧_cssli
-
本篇将介绍几个css小技巧,目录如下:自定义引用标签的符号重置所有标签样式...
- 如何在浏览器中运行 .NET_怎么用浏览器运行代码
-
概述:...
- 前端-干货分享:更牛逼的CSS管理方法-层(CSS Layers)
-
使用CSS最困难的部分之一是处理CSS的权重值,它可以决定到底哪条规则会最终被应用,尤其是如果你想在Bootstrap这样的框架中覆盖其已有样式,更加显得麻烦。不过随着CSS层的引入,这一...
-
- HTML 基础标签库_html标签基本结构
-
HTML标题HTML标题(Heading)是通过-...
-
2025-02-20 18:34 yuyutoo
- 前端css面试20道常见考题_高级前端css面试题
-
1.请解释一下CSS3的flexbox(弹性盒布局模型),以及适用场景?display:flex;在父元素设置,子元素受弹性盒影响,默认排成一行,如果超出一行,按比例压缩flex:1;子元素设置...
- vue引入外部js文件并使用_vue3 引入外部js
-
要在Vue中引入外部的JavaScript文件,可以使用以下几种方法:1.使用``标签引入外部的JavaScript文件。在Vue的HTML模板中,可以直接使用``标签来引入外部的JavaScrip...
- 网页设计得懂css的规范_html+css网页设计
-
在初级的前端工作人员,刚入职的时候,可能在学习前端技术,写代码不是否那么的规范,而在工作中,命名的规范的尤为重要,它直接与你的代码质量挂钩。网上也受很多,但比较杂乱,在加上每年的命名都会发生一变化。...
- Google在Chrome中引入HTML 5.1标记
-
虽然负责制定Web标准的WorldWideWebConsortium(W3C)尚未宣布HTML5正式推荐规格,而Google已经迁移到了HTML5.1。即将发布的Chrome38将引入H...
- HTML DOM 引用( ) 对象_html中如何引用js
-
引用对象引用对象定义了一个同内联元素的HTML引用。标签定义短的引用。元素经常在引用的内容周围添加引号。HTML文档中的每一个标签,都会创建一个引用对象。...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)