第9章系统相关和图形界面.ppt

上传人:sccc 文档编号:5829358 上传时间:2023-08-24 格式:PPT 页数:27 大小:536.51KB
返回 下载 相关 举报
第9章系统相关和图形界面.ppt_第1页
第1页 / 共27页
第9章系统相关和图形界面.ppt_第2页
第2页 / 共27页
第9章系统相关和图形界面.ppt_第3页
第3页 / 共27页
第9章系统相关和图形界面.ppt_第4页
第4页 / 共27页
第9章系统相关和图形界面.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《第9章系统相关和图形界面.ppt》由会员分享,可在线阅读,更多相关《第9章系统相关和图形界面.ppt(27页珍藏版)》请在三一办公上搜索。

1、第9章 系统相关和图形界面,对于系统管理员而言,可能每天都会需要与脚本打交道,有时是为了简单的诸如自动备份和恢复系统的任务,有时是因为需要自动完成很复杂且不断重复性的工作,例如周期性的检测和释放磁盘空间,存储24小时内的所有系统设置的改动等。脚本语言没有繁冗的语法限制,能够快速地开发和执行,即写即用,而且与操作系统结合非常紧密,其实最初就是为了协助系统管理员而诞生的。Ruby作为一门新兴的动态脚本语言,很好地继承了前辈在系统管理方面的优势。在本章中将会全面介绍Ruby在系统方面的技术和技巧。另外在本章的后半部分还将介绍如何使用Ruby创建图形界面(GUI)。,9.1 运行外部程序,运行外部程序

2、,是与外部系统交互的一种方式,也是系统操作最基础的功能之一。Ruby提供了多种运行外部程序的方式。(1)第一种方式是使用%x方法,它可以执行外部命令或程序,运行时,会一直等待程序运行结束然后再继续执行后面的代码,运行完毕后会将程序输出的结果以字符串形式返回。例如:list=%x(dir)(2)另外一种方式是使用system方法,很多语言中都有同名的方法,它通过一定的内部机制执行指定的命令。例如:system(“notepad”)#打开记事本system(“dir c:”)#显示c:下的目录文件,9.2 编写命令行程序和ARGV变量,虽然操作系统已经步入了图形化操作的阶段,但是对于系统管理而言,

3、文本形式的命令行程序依然非常重要。到此为止,本书中介绍的所有Ruby程序示例都是要么可以在irb中运行,要么就是可以使用ruby.exe解析程序在命令行窗口中直接执行,不难发现原来Ruby命令行程序可以实现如此强大的功能。目前编写完善的命令行程序唯一欠缺的就是接收通过命令行传递给Ruby程序的参数,实际上Ruby提供了一个全局变量ARGV来实现这个功能。ARGV为一数组,可以使用ARGV.size获得参数的数量,ARGV0来获得第一个参数等。,9.3 Win32API和Win32OLE,虽然Ruby诞生于Unix环境,而且不容否认的是Ruby在Unix环境中能够发挥最大的威力,不过Ruby的作

4、者和整个社区都在尽力改变这种情况。Ruby已经迈向了许多平台,作为Ruby的第二平台Windows,很显然也获得了比较成熟的支持。下面就将介绍Ruby对于Windows 32 API接口以及Windows自动化的支持和简单应用。,9.3.1 Win32API简介,Win32 API是Windows操作系统内核与应用程序之间的接口,它将Windows系统内核提供的功能进行函数包装,应用程序通过调用相关函数而获得相应的系统功能。标准Win32APl函数包括系统服务、通用控件库、图形设备接口、网络服务、用户接口、系统Shell以及Windows系统信息等众多方面的支持。Ruby标准库中提供了一个名为

5、Win32API的库,为Ruby程序提供了访问Window 32 API接口的支持。使用过程可以分为三步:(1)使用Win32API.new定义Ruby对API的接口,例如:get_cursor_pos=Win32API.new(user32,GetCursorPos,P,V)(2)调用API时,使用Win32API实例的Call方法调用,同时可以传入相应的参数。例如:get_cursor_pos.Call(lpPoint)(3)传入的参数和传回的结果在需要时,可以使用Array的实例方法pack和String的unpack方法设置或获得正确的数据。,9.3.2 Win32OLE简介,OLE(

6、Object Linking and Embedding、对象的链接与嵌入)是一项增强Windows应用程序之间的相互协作性的技术,它使Windows应用程序的功能得以扩展。使用OLE技术,一个Windows应用程序可以启动其他Windows应用程序,也可以显示和控制其他Windows应用程序的数据,并在创建该数据的程序中对它进行编辑。Win32OLE库是Ruby程序访问Window OLE自动化操作的接口。它所操作的也是对象,因此相对于Win32API而言使用上会更加简单一些。在创建OLE对象时,使用的也是Win32OLE.new方法,参数可以是OLE自动化对象类的名称,也可以是类的CLSI

7、D。例如,以下两种方式是一致的:excel=WIN32OLE.new(Excel.Application)excel=WIN32OLE.new(00024500-0000-0000-C000-000000000046),9.3.3 使用Win32OLE操作Word和Excel,Microsoft Office系列的产品都能比较好地支持OLE自动化操作,也即意味着可以使用Ruby自动创建Word文档或者是Excel电子表格。,Win32OLE创建的Word文档,9.3.4 使用Win32OLE控制IE浏览器,代码9-4通过一个示例,来演示如何使用Win32OLE来控制IE浏览器,控制结果如图所示

8、。,Win32OLE控制IE浏览器演示,9.4 Ruby构建图形界面,迄今为止,构建图形界面并不是Ruby的强项。图形界面相关的编程与操作系统的GUI接口密切相关,而Ruby作为一门跨平台的语言,如果需要创建一个通用的图形界面工具或程序显然也是较为复杂的。不过幸好有许多开发人员已经考虑到了这个问题,因而诞生了一些应用于Ruby的GUI图形接口库。与数据库接口库类似,这些GUI接口库封装了许多创建图形界面的代码,使用的人只需要学习接口库中所提供的简化的统一方法,而不需要去考虑如何与不同的操作系统的GUI接口打交道。目前Ruby中可以使用的图形界面GUI库有很多,常用的有Ruby/Tk、FXRub

9、y、Ruby/GTK、WxRuby以及Shoes等。它们绝大部分都是开源并且可以免费使用的。下面首先对这些常用的GUI库进行一个简要的概述,在后面的几节中将再针对较为有特色的Ruby/Tk、WxRuby和Shoes逐个进行详细的介绍。,9.5 Ruby/Tk应用介绍,下面继续详细介绍Ruby/Tk的应用。虽然Ruby环境中已经自带了Ruby的Tk接口,但是却没有携带完整的Tcl/Tk,因此在使用Ruby/Tk进行应用前仍然需要先下载并安装Tcl/Tk包。,9.5.1 下载并安装Tcl/Tk,在绝大多数的 Linux 发行版中,Tcl/Tk 都是标准选项。不过对于Windows用户而言,可以在A

10、ctiveState上下载到Tcl/Tk 二进制安装包,下载的地址为http:/8.4运行的,这里需要下载的是8.4版本的安装包,大小约为24.6M。运行下载的安装文件,会出现如图所示界面,界面中会显示安装包中所含的组件以及相应的版本。依次单击Next按钮,基本上就完成了ActiveTcl的安装。,ActiveTcl安装界面,9.5.2 编写Hello World,首先编写一个简单的Hello World Tk示例,在编辑器中输入如代码所示的代码:,Hello world程序演示,9.5.3 Tk部件,Tk中,部件是一种可以执行特定功能的图形对象。界面中的任何图形对象都可以视为一个小部件。对于

11、 GUI 应用程序而言,按钮、文本、框架和滚动栏都是小部件。本小节中将介绍几个基本Tk小部件,并提供有关每个小部件的示例,除了前面介绍过的按钮和标签外,还包括框架、多行文本输入框和单行文本输入框。框架部件(TkFrame),正如其名称所描述的那样是一个框架或盒子,通常用来对其他小部件进行分组。,TkEntry演示,9.5.4 事件处理,窗体中的部件都能响应一定的事件,例如鼠标单击、悬浮或者是键盘按键等。Tk中可以使用bind方法创建一个特定的事件到代码块的绑定。bind方法接受两个参数,一个是绑定的事件;另外一个就是响应该事件的代码块。使用方法,例如绑定鼠标光标移入事件可以写为:obj.bin

12、d(Enter)或者obj.bind(Enter)doend,9.5.5 Canvas画布,Ruby/Tk还提供了TkCanvas类以及其他一些类来支持绘图功能。一般而言,这样的一些类都以 Tkc 开头(c 表示 Canvas)。例如 TkcLine、TkcOval等。下面是一个简单的程序示例,结合前一节介绍的事件绑定方法,实现一个简单的画线的画图板,能够使用鼠标不断在窗口中画线。,Canvas画图板,9.6 WxRuby应用介绍,下面将介绍WxRuby的应用。首先要介绍的的依然是如何在计算机中下载并安装WxRuby。,9.6.1 下载并安装WxRuby,WxRuby的安装过程较为简单,可以使

13、用RubyGems或者去下载WxRuby的源代码然后在计算机中编译,显然使用RubyGems是最简单快捷的方法。在命令行窗口中输入:gem install wxruby等待gem程序更新完gem列表后,会提示选择需要安装WxRuby的版本,如下所示:Bulk updating Gem source index for:http:/gems.rubyforge.orgSelect which gem to install for your platform(i386-mswin32)1.wxruby 1.9.7(x86-linux)2.wxruby 1.9.7(universal-darwin-

14、9)3.wxruby 1.9.7(x86-mswin32-60)4.wxruby 1.9.7(i386-mswin32)5.Skip this gem 6.Cancel installation,9.6.2 第一个WxRuby程序,首先还是以一个Hello world程序来对WxRuby有个初步的认识。代码将会创建一个简单的窗口,并在窗口中简单显示“Hello world”。代码 Hello world程序#引用WxRuby库require wxinclude Wx#创建一个继承自Wx:App的类class HelloWorld App#创建初始化方法 def on_init#创建Hello

15、World Framehelloframe=Frame.new(nil,-1,Hello World)#创建静态文本StaticText.new(helloframe,-1,Hello World)#显示窗口 helloframe.show()endend#创建App的实例,展示窗体HelloWorld.new.main_loop,9.6.3 基本控件介绍,从前面的示例中可以看到WxRuby所提供的控件种类是非常多了,基本的控件都有数十种,这里仅以少数几种为例介绍WxRuby中控件的使用,实际上其他控件的使用方法也大同小异。1Wx:Panel2Wx:Button3Wx:TextCtrl4Wx:

16、BoxSizer5演绎常见控件,9.6.4 事件处理,图形界面的程序中必然要涉及到对事件的处理,WxRuby中通过一系列以evt开头的方法来定义事件的响应。例如:#响应大小改变的事件evt_size puts 大小被改变 my_button=Wx:Button.new(self,:label=Press me)#响应按钮被单击的事件evt_button(my_button)puts Button被单击 在事件的响应处理过程中,会传递一个包含事件信息的事件对象作为参数进入响应的代码中。里面的信息可能会包括鼠标的位置、按键的代码等。例如:evt_size|event|puts 现在的大小为:#ev

17、ent.size.width,9.7 Shoes应用介绍,Shoes也是一个跨平台的图形界面支持库,与Ruby/Tk或者WxRuby不同的是Shoes在设计中借鉴了大量Web特性,同时更加侧重于画图以及动画的功能。,9.7.1 下载并安装Shoes,Shoes的官方网站地址为http:/OS X系统、WIndows系统和Linux系统中的运行效果截图,正好体现了Shoes的跨平台、图形绘图功能的特性。,Shoes官方网站,9.7.2 第一个Shoes程序,下面介绍如何使用Shoes来构建图形界面程序。首先还是先构建一个最简单的Hello world程序,如代码所示。代码 Shoes的Hello

18、 world程序#创建Shoes APP窗体Shoes.app:height=200,:width=200 do 创建按钮 button Click me!do#设置单击响应 alert Hello world!end end,Hello world程序,9.7.3 Stacks和Flows介绍,Shoes中界面中元素的布局方式比较类似于HTML页面中的方式。在HTML页面中元素的显示方式有block和inline两种,一种是独占一行,另外一种排列较为紧凑,类似于流的方式,只有依次排满了才会排列到下一行。Shoes中与之对应的有Stacks和Flows这两个概念。,布局排列演示,9.7.4 基

19、本控件,Shoes中支持大部分常用的窗体控件,其中包括Button、Check、EditBox、EditLine、Image、ListBox、Radio等,有许多控件都是直接来自于HTML。这些控件的使用方法都非常简单,调用相应名称的方法,并传入一个Hash参数即可。,基本控件演示,9.7.5 绘图和动画,Shoes的强项在于绘图和动画,它提供了大量的方法能够绘制各种图形以及进行颜色和背景填充,另外构造动画的方法也非常简单。Shoes所提供的绘图方法有如下所示的几种。画线方法:line(x1,y1,x2,y2)画圆或者椭圆方法:oval(x,y,w,h)画方框方法:rect(x,y,w,h)画

20、箭头方法:arrow(x,y,size)画星形图案:star(x,y,p,r,inner),9.8 小结,本章中介绍了Ruby在操作系统方面的应用以及构建图形界面。9.1节中介绍了在Ruby程序内部调用外部程序的方法,随后9.2节中介绍了如何创建Ruby命令行程序,让Ruby自动化完成一些系统的操作,并能够传入参数对程序进行控制。随后把应用平台聚焦在Windows系统中,介绍了如何使用Win32API和Win32OLE来执行Windows系统特有的接口或自动化操作。最后几节中介绍了如何使用Ruby开发构建图形界面,对目前较为流行的Ruby图形界面接口进行了一系列的概述,同时以Ruby/Tk、WxRuby和Shoes为例进行了详细的应用讲解。相信在阅读完本章后,Ruby能够帮助读者完成一些繁琐的任务,成为读者日常工作和应用中的好帮手。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号