新書推薦:
《
没有伞的孩子必须努力奔跑
》
售價:NT$
149.0
《
做最好的班主任(李镇西教育文集版)
》
售價:NT$
230.0
《
数据驱动法律
》
售價:NT$
390.0
《
对话世界一流大学图书馆馆长
》
售價:NT$
995.0
《
揭秘立体翻翻书--我们的国宝
》
售價:NT$
490.0
《
清代贡院史
》
售價:NT$
800.0
《
光焰摇曳——变革与守望的梁启超
》
售價:NT$
440.0
《
发展与制约:明清江南生产力研究(壹卷李伯重文集:江南水乡,经济兴衰,一本书带你穿越历史的迷雾)
》
售價:NT$
480.0
|
編輯推薦: |
本书基于Octave软件编写GUI应用的开发技术,并突出编写开发的实战部分,使读者可以边学边练,更轻松地学会Octave GUI应用开发技术。
本书适合各种阶段的开发者学习,既涉及GUI设计的理念等入门内容,又涉及多种难度的、Octave GUI应用开发的实战内容。
本书的实战内容配有丰富的代码,并包含几百个代码文件,还包含作者编写的一部分底层代码文件。读者可根据需要在日后的Octave GUI应用开发过程当中使用这部分代码文件。
|
內容簡介: |
Octave为GNU项目下的开源软件,旨在解决线性和非线性数值计算问题。本书由浅入深,全面讲解基于Octave软件编写GUI应用的开发技术,帮助读者尽快掌握Octave GUI应用的技巧。 本书共8章,层次分明,将GUI与面向对象相结合,从基础到实战,内容循序渐进。本书提供大量实战内容,从经典GUI应用设计实战到系统设计实战,配合在项目中的开发方式,将大型GUI应用的开发过程化繁为简。 本书适合各种基础的读者,没有接触过GUI应用开发的读者可以通过本书快速入门,接触过GUI应用开发的读者也可以通过本书提升GUI应用的开发能力。
|
關於作者: |
于红博,曾在某世界500强公司担任测试开发工程师,参与内部框架的维护和开发。主要涉及科学计算、图像处理、自动化系统设计、模式识别、神经网络等分支的算法设计和程序设计领域。在业余时间爱好编写、审阅及完善开源软件,对于开源软件的发展做出了一定的贡献。
|
目錄:
|
第1章绪论
第2章GUI与面向对象
2.1GUI设计原理
2.1.1GUI分类
2.1.2GUI控件
2.1.3原型设计
2.2面向对象设计理念
2.3老式类
2.4新式类
2.4.1类文件夹
2.4.2初始化一个类
2.4.3构造方法
2.4.4构造方法的返回值
2.4.5类方法
2.4.6继承
2.4.7实例变量中的字段
2.4.8字段索引
2.4.9字段赋值
2.4.10下标索引
2.4.11方法重载
2.4.12优先级函数
2.4.13运算符重载
2.4.14类的通用工具函数
2.5老式类和新式类的区别
第3章常用句柄操作
3.1通用句柄操作
3.1.1返回句柄
3.1.2句柄强制类型转换
3.1.3句柄复制
3.1.4获得句柄
3.1.5设置句柄
3.1.6查找非隐藏的句柄
3.1.7查找全部句柄
3.1.8重置句柄
3.1.9查找可见的图形
3.2句柄组
3.2.1创建句柄组
3.2.2增加句柄键参数
3.2.3绑定监听器
3.2.4解绑监听器
3.2.5连接句柄键参数
3.2.6连接轴对象范围
3.3判断绘图句柄
3.3.1判断图形句柄
3.3.2通过类型判断图形句柄
3.3.3判断图形句柄或Java
对象
3.3.4判断坐标轴句柄
3.3.5判断图像句柄
第4章图形对象与句柄
4.1根对象与句柄
4.1.1根对象
4.1.2根对象句柄
4.1.3默认根对象属性
4.2图像对象与句柄
4.2.1图像对象
4.2.2图像对象句柄
4.2.3默认图像对象属性
4.3轴对象与句柄
4.3.1轴对象
4.3.2轴对象句柄
4.3.3默认轴对象属性
4.4图线对象与句柄
4.4.1图线对象
4.4.2图线对象句柄
4.4.3默认图线对象属性
4.5图例对象与句柄
4.5.1图例对象
4.5.2图例对象句柄
4.5.3默认图例对象属性
4.6文本对象与句柄
4.6.1文本对象
4.6.2文本对象句柄
4.6.3默认文本对象属性
4.7位图对象与句柄
4.7.1位图对象
4.7.2位图对象句柄
4.7.3默认位图对象属性
4.8补丁对象与句柄
4.8.1补丁对象
4.8.2补丁对象句柄
4.8.3默认补丁对象属性
4.9面对象与句柄
4.9.1面对象
4.9.2面对象句柄
4.9.3默认面对象属性
4.10光源对象与句柄
4.10.1光源对象
4.10.2光源对象句柄
4.10.3默认光源对象属性
4.11面板对象与句柄
4.11.1面板对象
4.11.2面板对象句柄
4.11.3默认面板对象属性
4.12按钮组对象与句柄
4.12.1按钮组对象
4.12.2按钮组对象句柄
4.12.3默认按钮组对象属性
4.13控制对象与句柄
4.13.1控制对象
4.13.2控制对象句柄
4.13.3默认控制对象属性
4.14表格对象与句柄
4.14.1表格对象
4.14.2表格对象句柄
4.14.3默认表格对象属性
4.15菜单对象与句柄
4.15.1菜单对象
4.15.2菜单对象句柄
4.15.3默认菜单对象属性
4.16上下文菜单对象与句柄
4.16.1上下文菜单对象
4.16.2上下文菜单对象句柄
4.16.3默认上下文菜单对象
属性
4.17工具栏对象与句柄
4.17.1工具栏对象
4.17.2工具栏对象句柄
4.17.3默认工具栏对象属性
4.18工具栏按钮对象与句柄
4.18.1工具栏按钮对象
4.18.2工具栏按钮对象句柄
4.18.3默认工具栏按钮对象
属性
4.19工具栏拨动开关对象与句柄
4.19.1工具栏拨动开关对象
4.19.2工具栏拨动开关对象
句柄
4.19.3默认工具栏拨动开关
对象属性
4.20控制复选框对象与句柄
4.20.1控制复选框对象
4.20.2控制复选框对象句柄
4.20.3控制复选框对象属性
4.21控制输入框对象与句柄
4.21.1控制输入框对象
4.21.2控制输入框对象句柄
4.21.3控制输入框对象属性
4.22控制列表框对象与句柄
4.22.1控制列表框对象
4.22.2控制列表框对象句柄
4.22.3控制列表框对象属性
4.23控制下拉菜单对象与句柄
4.23.1控制下拉菜单对象
4.23.2控制下拉菜单对象
句柄
4.23.3控制下拉菜单对象
属性
4.24控制按钮对象与句柄
4.24.1控制按钮对象
4.24.2控制按钮对象句柄
4.24.3控制按钮对象属性
4.25控制单选框对象与句柄
4.25.1控制单选框对象
4.25.2控制单选框对象句柄
4.25.3控制单选框对象属性
4.26控制滚动条对象与句柄
4.26.1控制滚动条对象
4.26.2控制滚动条对象句柄
4.26.3控制滚动条对象属性
4.27控制文本对象与句柄
4.27.1控制文本对象
4.27.2控制文本对象句柄
4.27.3控制文本对象属性
4.28控制拨动开关对象与句柄
4.28.1控制拨动开关对象
4.28.2控制拨动开关对象
句柄
4.28.3控制拨动开关对象
属性
第5章GUI功能函数
5.1文件管理
5.1.1文件夹选择器
5.1.2文件选择器
5.1.3文件保存器
5.2对话框
5.2.1错误对话框
5.2.2帮助对话框
5.2.3文本框对话框
5.2.4列表对话框
5.2.5信息框
5.2.6询问对话框
5.2.7警告对话框
5.2.8自定义对话框
5.3进度条
5.4字体选择器
5.5查询或设置GUI数据
5.6查询GUI相关句柄
5.7GUI功能查询
5.8GUI运行模式查询
5.9精确移动窗口
5.10变量编辑器
5.11暂停与恢复GUI之外的
程序执行
5.11.1暂停GUI之外的程序
执行
5.11.2恢复暂停的程序
5.11.3可自动恢复的暂停
第6章经典GUI应用实例
6.1计算器设计与实现
6.1.1计算器原型设计
6.1.2计算器视图代码设计
6.1.3计算器属性代码设计
6.1.4计算器回调函数代码
设计
6.1.5合并回调函数
6.1.6解算器设计思想
6.2记事本设计与实现
6.2.1记事本原型设计
6.2.2记事本视图代码设计
6.2.3记事本属性代码设计
6.2.4控件尺寸自适应
6.2.5关闭窗口与删除对象
6.2.6与删除对象相关的回调
函数
6.2.7与文件存取相关的回调
函数
6.2.8自定义菜单项目快捷键
6.2.9创建多个实例
6.3日历设计与实现
6.3.1日历原型设计
6.3.2日历视图代码设计
6.3.3日历属性代码设计
6.3.4表格的自动调节列宽
6.3.5日期时间数据处理
6.3.6动态改变控件类型
6.4PDF阅读器设计与实现
6.4.1PDF阅读器原型设计
6.4.2PDF阅读器视图代码
设计
6.4.3PDF阅读器属性代码
设计
6.4.4图像对象全屏显示
6.4.5轴对象在显示位图对象
时的额外设置
6.4.6运用操作系统中的其他
软件
6.4.7与打开PDF文件相关的
异常处理
6.4.8与打开PDF文件相关的
回调函数
6.5天气预报客户端设计与实现
6.5.1天气预报客户端原型
设计
6.5.2天气预报客户端视图
代码设计
6.5.3天气预报客户端常见
报错
6.5.4天气预报数据获取
6.5.5天气预报数据处理
6.5.6天气预报客户端表格的
更新逻辑
6.5.7天气预报客户端更新
时间的更新逻辑
6.5.8天气预报客户端属性代码
设计
第7章界面布局
7.1布局原理
7.1.1布局的作用
7.1.2布局与配置文件
7.1.3通过布局影响脚本的
运行效果
7.2布局类
7.3布局分类
7.3.1基本布局
7.3.2绝对布局
7.3.3相对布局
7.3.4其他布局
7.4布局内容提供者类
7.4.1基本布局内容提供者类
7.4.2绝对布局内容提供者类
7.4.3相对布局内容提供者类
7.5布局生成器类
7.5.1初始化布局生成器类
7.5.2基本布局生成器类
7.5.3绝对布局生成器类
7.5.4相对布局生成器类
7.6脚本生成器类
7.6.1脚本内容结构分析
7.6.2初始化脚本生成器类
7.6.3初始化脚本生成路径
7.6.4初始化新的脚本文件
7.6.5生成文件头
7.6.6生成文件尾
7.7常量的作用域
7.8用字符串代表的值
7.9字面量和符号量的选择
7.10GUI配置文件制作器
7.10.1GUI配置文件制作器
原型设计
7.10.2GUI配置文件制作器
视图代码设计
7.10.3GUI配置文件制作器
属性代码设计
7.10.4GUI配置文件制作器
性能优化
7.10.5设置脚本属性
7.10.6选择要增加的布局
7.10.7增加布局
7.10.8增加图形对象
7.10.9布局列表
7.10.10图形对象列表
7.10.11删除当前布局
7.10.12删除当前图形对象
7.10.13刷新布局列表内容
7.10.14刷新图形对象列表
内容
7.10.15清空图形对象列表
内容
7.10.16刷新编辑区域
7.10.17隐藏编辑区域内的
全部控件
7.10.18序列化与反序列化
7.10.19保存配置文件
7.10.20打开配置文件
7.10.21清空当前配置
7.10.22保存并生成可执行
脚本
7.10.23可视化的报错提示
7.10.24退出GUI配置文件
制作器时的弹窗
第8章商店项目
8.1系统架构设计
8.2角色设计
8.3状态设计
8.3.1表盘状态的设计
8.3.2订单状态的设计
8.4搭建调试环境
8.4.1安装Vagrant
8.4.2自动化安装Fedora
虚拟机
8.4.3更换Fedora的软件源
8.4.4打开或关闭服务的
自启动
8.5数据结构设计
8.5.1用户表设计
8.5.2商品表设计
8.5.3商品信息表设计
8.5.4订单表设计
8.5.5审核表设计
8.5.6团队表设计
8.6数据库操作
8.6.1安装PostgreSQL
8.6.2安装用于连接PostgreSQL
的库
8.6.3启动PostgreSQL
8.6.4PostgreSQL控制工具
8.6.5PostgreSQL初始化数据库
失败
8.6.6PostgreSQL启动数据库
失败
8.6.7PostgreSQL连接数据库
失败
8.6.8PostgreSQL用单用户
模式修复数据库
8.6.9使用数据库客户端连接到
PostgreSQL数据库服
务器
8.6.10PostgreSQL查看配置
文件位置
8.6.11PostgreSQL数据库插入
jsonb类型的数据
8.6.12PostgreSQL数据库查询
JSON数据
8.7用于PostgreSQL的SQL命令
8.7.1新增数据库用户
8.7.2建库语句
8.7.3权限管理
8.7.4用户数据DDL命令
8.7.5商品数据DDL命令
8.7.6商品信息数据DDL
命令
8.7.7商品订单数据DDL
命令
8.7.8审核权限DDL和DQL
命令
8.7.9团队DDL和DQL命令
8.7.10用户数据DML和DQL
命令
8.7.11商品数据DML和DQL
命令
8.7.12商品信息数据DML和
DQL命令
8.7.13订单数据DML和DQL
命令
8.7.14商品状态DML和DQL
命令
8.7.15订单状态DML和DQL
命令
8.7.16审核权限DML和DQL
命令
8.7.17团队DML和DQL
命令
8.8搜索引擎
8.8.1用PostgreSQL实现搜索
引擎功能
8.8.2基本文本匹配
8.8.3解析文档
8.8.4解析查询
8.8.5搜索结果排名
8.8.6加亮结果
8.9建立索引
8.9.1索引的作用
8.9.2索引的优点
8.9.3建立索引的类型
8.9.4建立索引的SQL命令
8.9.5重建索引的SQL命令
8.10API设计
8.10.1创建用户
8.10.2修改用户信息
8.10.3删除用户
8.10.4查询用户信息
8.10.5创建表盘信息
8.10.6修改表盘信息
8.10.7删除表盘信息(下架)
8.10.8查询表盘信息
8.10.9审核表盘信息(通过
审核)
8.10.10审核表盘信息(不通过
审核)
8.10.11创建订单
8.10.12删除订单
8.10.13查询订单
8.10.14付款(下发付款
请求)
8.10.15付款(查询付款
结果)
8.10.16退款(用户要求
退款)
8.10.17退款(商家支持退款
要求)
8.10.18退款(商家不支持退款
要求)
8.11微服务设计
8.11.1审核微服务
8.11.2付款检查微服务
8.11.3商品信息微服务
8.11.4订单管理微服务
8.11.5商品管理微服务
8.11.6订单微服务
8.11.7付款微服务
8.11.8商品微服务
8.11.9状态微服务
8.11.10测试微服务
8.11.11用户微服务
8.11.12UUID微服务
8.11.13图片微服务
8.12使用Octave编写CGI应用
8.12.1安装CGI工具箱
8.12.2CGI类的常用方法
8.12.3CGI测试应用
8.12.4没有安装CGI工具箱时的
故障
8.13Octave和RESTful Web服务
8.13.1从RESTful Web服务
读取内容
8.13.2向RESTful Web服务
写入内容
8.13.3weboptions
8.14Apache
8.14.1安装Apache
8.14.2启动Apache
8.14.3访问Apache服务器的
测试页面
8.14.4Apache的配置文件
位置
8.14.5Apache的CGI文件夹
位置
8.15Nginx
8.15.1安装Nginx
8.15.2启动Nginx
8.15.3访问Nginx服务器的
测试页面
8.15.4Nginx的配置文件
位置
8.16Caddy
8.16.1安装Caddy
8.16.2启动Caddy
8.16.3访问Caddy服务器的
测试页面
8.16.4Caddy的配置文件
位置
8.16.5Caddy默认的站点
文件夹位置
8.16.6修改Caddy的站点
文件夹位置
8.16.7启用Caddy的文件
服务器的功能
8.16.8访问文件服务器的
索引页面
8.16.9修改Caddy的端口
8.17换用HTTPS
8.18备选的文件服务器方案
8.19UUID
8.20使用Octave操作PostgreSQL
数据库
8.20.1安装database工具箱
8.20.2Octave连接PostgreSQL
的函数
8.20.3向PostgreSQL执行
SQL命令
8.20.4更新缓存的PostgreSQL
的数据的类型
8.20.5向PostgreSQL导入大
对象
8.20.6从PostgreSQL导出大
对象
8.20.7从PostgreSQL删除大
对象
8.20.8查看PostgreSQL的大
对象
8.20.9连接PostgreSQL
选项的可选参数
8.20.10在PostgreSQL中执行
SQL命令选项的可选
参数
8.20.11SQL和Octave之间数据
类型的对应关系
8.20.12SQL和Octave之间数据
类型的自动判断
8.20.138字节的时间数值
8.20.14PostgreSQL的
NULL
8.20.15数据存储格式的转换
策略
8.20.16PostgreSQL和Octave
之间数据类型的
对应关系
8.20.17PostgreSQL和Octave
之间数据类型的自动
判断
8.20.18几何的、点的数据
8.21表盘原型设计
8.21.1表盘的框架
8.21.2表盘的背景
8.21.3构成表盘的6种图形
元素
8.22表盘制作器客户端
8.22.1表盘制作器客户端
原型设计
8.22.2制作界面
8.22.3表盘制作器客户端允许
编辑的选项
8.22.4表盘制作器客户端允许
设置的表盘信息
8.22.5表盘制作器客户端对表
盘配置的操作
8.22.6表盘配置验证逻辑
8.23登录和注册组件
8.23.1登录和注册组件原型
设计
8.23.2导航界面
8.23.3登录界面
8.23.4注册界面
8.23.5对接其他业务流程
8.24表盘上传器客户端
8.24.1表盘上传器客户端原型
设计
8.24.2配置浏览界面
8.24.3表盘上传界面
8.24.4上传状态
8.25表盘审核器客户端
8.25.1表盘审核器客户端原型
设计
8.25.2商品信息界面
8.25.3搜索选项界面
8.25.4商品详情界面
8.25.5审核权限控制
8.26表盘商店客户端
8.26.1表盘商店客户端原型
设计
8.26.2商店界面
8.26.3搜索选项界面
8.26.4商品详情界面
8.26.5确认下单界面
8.26.6订单管理界面
8.26.7订单详情界面
8.26.8付款界面
8.26.9手动刷新商品和订单
8.26.10商品和订单的刷新
方式
8.27商店后台管理系统
8.27.1商店后台管理系统原型
设计
8.27.2后台管理界面
8.27.3批量操作商品或订单
8.28表盘播放器客户端
8.28.1表盘播放器客户端原型
设计
8.28.2播放界面
8.28.3播放表盘动画
8.29客户端的搜索选项
8.29.1搜索关键字
8.29.2搜索结果排序
8.30商店项目框架
8.30.1商店项目框架原型
设计
8.30.2框架界面
8.30.3配置文件设计
8.30.4商店项目框架的初始化
过程
8.31数据库集群
8.31.1数据库集群的IP
配置
8.31.2PgpoolII的版本和
配置
8.31.3PgpoolII配置文件的
位置
8.31.4创建专门的用户
8.31.5配置客户端认证权限
8.31.6配置后端连接
8.31.7配置负载均衡
8.31.8配置流复制
8.31.9配置看门狗
8.31.10配置虚拟IP
8.31.11配置存活情况检查
8.31.12启动PgpoolII
8.31.13查看从机是否成功
加入集群
8.31.14安装pgmemcache
插件
8.31.15pgmemcache的配置
8.31.16pgmemcache的内置
函数
8.31.17安装redis_fdw插件
8.31.18redis_fdw的用例
8.32Web服务器集群
8.32.1Web服务器集群的IP
地址配置
8.32.2使用rsync同步文件
8.32.3同步微服务
8.32.4配置Web服务器集群的
虚拟IP地址
8.32.5安装keepalived
8.32.6通过keepalived绑定
虚拟IP地址
8.32.7管理keepalived服务
8.32.8配置Web服务器集群的
负载均衡
8.32.9负载均衡和虚拟IP
地址配合使用
8.33文件服务器集群
8.33.1文件服务器集群的IP
地址配置
8.33.2NFS从安装到配置
8.34主备网关
8.35配置memcached缓存
8.36配置Redis缓存
|
內容試閱:
|
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月于长沙
|
|