跨平台编程的利器—Qt:一个MDI图形应用框架

本文详细介绍了Qt库在图形界面GUI编程中的应用,重点关注基于窗口的图形编程接口,包括QWidget、滚动条、父子窗口管理以及四种图形界面绘制方式。文章通过一个MDI框架实例,展示了如何构建复杂的图形应用,并探讨了Qt在图形显示上的灵活性,如支持OpenGL和SVG,以及QML技术在快速创建UI方面的潜力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本文接上篇“概述")

(Qt Library目前的版本为4.8,以下本文的程序将以此版本为主。)

三、Gt的GUI

Qt的优势在于GUI(本人的理解,至少以前如此,现在则未必),所以了解Qt,也是从图形界面的UI开始。

Qt有几百个类,与图形有关的估计有一半以上。本文主要介绍基于window的图形编程接口,另外稍微介绍一下OpenGL,可以为程序添加三维显示。

1.QWidget

这个是所有window的基类,类似于MFC中的CWnd,提供了许多基类方法。在做GUI时,应仔细阅读其说明文档。

2.滚动条

Qt窗口的滚动条是两个"控件“,需要手工添加(当然,Qt中也有一些自带滚动条的窗体类),不如Windows窗口中,滚动条是窗口的一个属性,凭设置就可以添加滚动条,但Windows中的滚动条是”假“的,需要手工编程控制其移动,而Qt在这点上要简单得多。

3.父子窗口

Qt中一个独特的现象是创建一个Widget时,可以指定一个父Widget,当父Widget销毁时,父Widget会遍历其子Widget,自动销毁子Widget,这样我们就不需要delete子窗口了。这是Qt内存管理的一个方法,对窗口来讲是合适的,由于我们不知道窗口何时销毁,所以必须将非窗口的东西(与窗口的生命期不同)拿出来,放到诸如document中存储,我们手工管理其生存周期。

4. 四种图形界面绘制方式

在Qt窗体下,可以有四种方式构成我们的图形界面,两种是基于文本(块)的格式化布局方式:通常的Window控件;QML控件,两种基于图形的任意布局方式:一种是无对象的,自己绘制;另一种是继承于GraphicsItem类的,一个图形是一个对象。以下分别介绍一下。

基于window控件的格式化GUI:这是最通常的一种UI方式,目前我们大量的对话窗口和Web页就是基于这种方式,这种方式是一种文本方式显示和录入方式。在Qt下,也提供了若干显示控件,可以满足基本的用户文本交换功能,当然,与Windows下的大量丰富的控件相比,Qt的控件就太”寒酸“了。

基于QML控件的格式化GUI:Qt中有专门显示html控件的窗口,但不知道为什么自己提出了一个叫QML(Declarative markup langua

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值