前言 Octave作为一款先进的、开源的科学计算软件,可开发的应用适用于非常多的场景。在实际应用中,除了有以命令行方式操作的CLI应用外,还有以GUI方式操作的GUI应用。GUI应用拥有图形用户界面,可供用户通过可视化的交互操作控制应用运行,例如在CLI应用中输入的命令可以在GUI应用中用单击按钮的方式代替,因此GUI应用拥有操作方便和界面美观等优点,所以学会开发GUI应用对于软件开发者而言有非常重要的意义。 本书基于Octave软件编写GUI应用的开发技术,并突出编写开发的实战部分,使读者可以边学边练,更轻松地学会Octave GUI应用开发技术。本书适合各层次的读者,既涉及GUI设计的理念等入门内容,又涉及多种难度的、Octave GUI应用开发的实战内容,相信读者在阅读本书后可以学习、巩固并提高Octave GUI应用开发技术。 本书共8章,主要内容如下: 第1章讲解Octave在GUI应用开发方面的相关内容。 第2章讲解GUI的基本设计原理、面向对象设计理念、如何使用面向对象设计的思想设计GUI应用及老式类和新式类的技术要点。本章对于GUI设计具有前导作用,带领读者快速领会GUI设计的基本概念和基于Octave的GUI设计的实施方法。 第3章讲解通用句柄操作、和句柄组相关的函数及如何判断绘图句柄。 第4章讲解Octave的图形对象与句柄的内在联系、创建和查询句柄、图形对象的概念、图形对象的默认属性及如何对默认属性进行修改。Octave可以通过句柄将代码对GUI做出的改动传递到图形对象上,进而影响图形对象在屏幕上呈现的效果等不同行为。在理解可以修改的属性后,读者可以灵活地在GUI上设计图形对象的显示效果、单击动作等,以丰富GUI的功能,并改进GUI,使其更加美观、大气并符合用户的操作习惯。 第5章讲解不同用途的GUI功能函数,包括用于生成特定功能的GUI窗口的功能函数及GUI应用的运行控制函数。GUI功能函数不限于和使用句柄控制的图形对象相关的函数,而更贴近于在Octave和操作系统之间直接进行GUI操作。本章要求读者对操作系统有一定程度的理解。 第6章讲解5个经典GUI应用的实战内容,包括计算器、记事本、日历、PDF阅读器及天气预报客户端,带领读者在经典中学习一般难度的GUI的设计与实现方法。这5个应用的实战内容在设计方法上各具代表性,每个应用需要注意的设计难点各有不同,因此它们没有严格的先后顺序,读者也可以按照自己需要的顺序进行阅读。 第7章讲解1个大型GUI应用的实战内容,在项目中带领读者将最终的GUI应用进行分块开发,理解在开发过程中的抽象概念并落地。 第8章讲解1个以多个GUI应用为客户端的分布式系统解决方案实战内容,在项目中带领读者学习现代系统的设计与实现、在多个GUI应用之间协同的数据处理和如何用GUI应用对接服务器端。GUI在现代系统中有着至关重要的作用,而现代系统在配合GUI后更可以简化用户的操作并改善使用体验。本章将重点放在系统的设计与实现上,目的是让读者更容易感受到在GUI背后的系统组件,进而更容易理解GUI操作的实际意义。 本书的实战内容配有丰富的代码,并包含几百个代码文件,还包含笔者编写的一部分底层代码文件。读者在理解代码后,扫描下方二维码可下载这部分代码文件,并根据需要在日后的Octave GUI应用开发过程中使用这部分代码文件。 本书源代码 限于本人的水平和经验,书中难免存在疏漏之处,恳请专家与读者批评指正。 于红博2023年5月于长沙