系統(tǒng)相關(guān)和圖形界面.ppt

上傳人:za****8 文檔編號:14454804 上傳時間:2020-07-21 格式:PPT 頁數(shù):27 大小:536.51KB
收藏 版權(quán)申訴 舉報 下載
系統(tǒng)相關(guān)和圖形界面.ppt_第1頁
第1頁 / 共27頁
系統(tǒng)相關(guān)和圖形界面.ppt_第2頁
第2頁 / 共27頁
系統(tǒng)相關(guān)和圖形界面.ppt_第3頁
第3頁 / 共27頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《系統(tǒng)相關(guān)和圖形界面.ppt》由會員分享,可在線閱讀,更多相關(guān)《系統(tǒng)相關(guān)和圖形界面.ppt(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第9章 系統(tǒng)相關(guān)和圖形界面,對于系統(tǒng)管理員而言,可能每天都會需要與腳本打交道,有時是為了簡單的諸如自動備份和恢復(fù)系統(tǒng)的任務(wù),有時是因為需要自動完成很復(fù)雜且不斷重復(fù)性的工作,例如周期性的檢測和釋放磁盤空間,存儲24小時內(nèi)的所有系統(tǒng)設(shè)置的改動等。腳本語言沒有繁冗的語法限制,能夠快速地開發(fā)和執(zhí)行,即寫即用,而且與操作系統(tǒng)結(jié)合非常緊密,其實最初就是為了協(xié)助系統(tǒng)管理員而誕生的。Ruby作為一門新興的動態(tài)腳本語言,很好地繼承了前輩在系統(tǒng)管理方面的優(yōu)勢。在本章中將會全面介紹Ruby在系統(tǒng)方面的技術(shù)和技巧。另外在本章的后半部分還將介紹如何使用Ruby創(chuàng)建圖形界面(GUI)。,9.1 運行外部程序,運行外部程序

2、,是與外部系統(tǒng)交互的一種方式,也是系統(tǒng)操作最基礎(chǔ)的功能之一。Ruby提供了多種運行外部程序的方式。 (1)第一種方式是使用%x方法,它可以執(zhí)行外部命令或程序,運行時,會一直等待程序運行結(jié)束然后再繼續(xù)執(zhí)行后面的代碼,運行完畢后會將程序輸出的結(jié)果以字符串形式返回。例如: list = %x(dir) (2)另外一種方式是使用system方法,很多語言中都有同名的方法,它通過一定的內(nèi)部機制執(zhí)行指定的命令。例如: system(“notepad”) #打開記事本 system(“dir c:”) #顯示c:下的目錄文件,9.2 編寫命令行程序和ARGV變量,雖然操作系統(tǒng)已經(jīng)步入了圖形化操作的階段,但

3、是對于系統(tǒng)管理而言,文本形式的命令行程序依然非常重要。 到此為止,本書中介紹的所有Ruby程序示例都是要么可以在irb中運行,要么就是可以使用ruby.exe解析程序在命令行窗口中直接執(zhí)行,不難發(fā)現(xiàn)原來Ruby命令行程序可以實現(xiàn)如此強大的功能。目前編寫完善的命令行程序唯一欠缺的就是接收通過命令行傳遞給Ruby程序的參數(shù),實際上Ruby提供了一個全局變量ARGV來實現(xiàn)這個功能。ARGV為一數(shù)組,可以使用ARGV.size獲得參數(shù)的數(shù)量,ARGV0來獲得第一個參數(shù)等。,9.3 Win32API和Win32OLE,雖然Ruby誕生于Unix環(huán)境,而且不容否認的是Ruby在Unix環(huán)境中能夠發(fā)揮最大的

4、威力,不過Ruby的作者和整個社區(qū)都在盡力改變這種情況。Ruby已經(jīng)邁向了許多平臺,作為Ruby的第二平臺Windows,很顯然也獲得了比較成熟的支持。下面就將介紹Ruby對于Windows 32 API接口以及Windows自動化的支持和簡單應(yīng)用。,9.3.1 Win32API簡介,Win32 API是Windows操作系統(tǒng)內(nèi)核與應(yīng)用程序之間的接口,它將Windows系統(tǒng)內(nèi)核提供的功能進行函數(shù)包裝,應(yīng)用程序通過調(diào)用相關(guān)函數(shù)而獲得相應(yīng)的系統(tǒng)功能。標準Win32APl函數(shù)包括系統(tǒng)服務(wù)、通用控件庫、圖形設(shè)備接口、網(wǎng)絡(luò)服務(wù)、用戶接口、系統(tǒng)Shell以及Windows系統(tǒng)信息等眾多方面的支持。 Rub

5、y標準庫中提供了一個名為Win32API的庫,為Ruby程序提供了訪問Window 32 API接口的支持。使用過程可以分為三步: (1)使用Win32API.new定義Ruby對API的接口,例如: get_cursor_pos = Win32API.new(user32,GetCursorPos,P,V) (2)調(diào)用API時,使用Win32API實例的Call方法調(diào)用,同時可以傳入相應(yīng)的參數(shù)。例如: get_cursor_pos.Call(lpPoint) (3)傳入的參數(shù)和傳回的結(jié)果在需要時,可以使用Array的實例方法pack和String的unpack方法設(shè)置或獲得正確的數(shù)據(jù)。,9.

6、3.2 Win32OLE簡介,OLE (Object Linking and Embedding、對象的鏈接與嵌入)是一項增強Windows應(yīng)用程序之間的相互協(xié)作性的技術(shù),它使Windows應(yīng)用程序的功能得以擴展。使用OLE技術(shù),一個Windows應(yīng)用程序可以啟動其他Windows應(yīng)用程序,也可以顯示和控制其他Windows應(yīng)用程序的數(shù)據(jù),并在創(chuàng)建該數(shù)據(jù)的程序中對它進行編輯。 Win32OLE庫是Ruby程序訪問Window OLE自動化操作的接口。它所操作的也是對象,因此相對于Win32API而言使用上會更加簡單一些。在創(chuàng)建OLE對象時,使用的也是Win32OLE.new方法,參數(shù)可以是OL

7、E自動化對象類的名稱,也可以是類的CLSID。例如,以下兩種方式是一致的: excel = WIN32OLE.new(Excel.Application) excel = WIN32OLE.new(00024500-0000-0000-C000-000000000046),9.3.3 使用Win32OLE操作Word和Excel,Microsoft Office系列的產(chǎn)品都能比較好地支持OLE自動化操作,也即意味著可以使用Ruby自動創(chuàng)建Word文檔或者是Excel電子表格。,,Win32OLE創(chuàng)建的Word文檔,9.3.4 使用Win32OLE控制IE瀏覽器,代碼9-4通過一個示例,來演示如

8、何使用Win32OLE來控制IE瀏覽器,控制結(jié)果如圖所示。,,Win32OLE控制IE瀏覽器演示,9.4 Ruby構(gòu)建圖形界面,迄今為止,構(gòu)建圖形界面并不是Ruby的強項。圖形界面相關(guān)的編程與操作系統(tǒng)的GUI接口密切相關(guān),而Ruby作為一門跨平臺的語言,如果需要創(chuàng)建一個通用的圖形界面工具或程序顯然也是較為復(fù)雜的。不過幸好有許多開發(fā)人員已經(jīng)考慮到了這個問題,因而誕生了一些應(yīng)用于Ruby的GUI圖形接口庫。與數(shù)據(jù)庫接口庫類似,這些GUI接口庫封裝了許多創(chuàng)建圖形界面的代碼,使用的人只需要學(xué)習(xí)接口庫中所提供的簡化的統(tǒng)一方法,而不需要去考慮如何與不同的操作系統(tǒng)的GUI接口打交道。 目前Ruby中可以使用

9、的圖形界面GUI庫有很多,常用的有Ruby/Tk、FXRuby、Ruby/GTK、WxRuby以及Shoes等。它們絕大部分都是開源并且可以免費使用的。下面首先對這些常用的GUI庫進行一個簡要的概述,在后面的幾節(jié)中將再針對較為有特色的Ruby/Tk、WxRuby和Shoes逐個進行詳細的介紹。,9.5 Ruby/Tk應(yīng)用介紹,下面繼續(xù)詳細介紹Ruby/Tk的應(yīng)用。雖然Ruby環(huán)境中已經(jīng)自帶了Ruby的Tk接口,但是卻沒有攜帶完整的Tcl/Tk,因此在使用Ruby/Tk進行應(yīng)用前仍然需要先下載并安裝Tcl/Tk包。,9.5.1 下載并安裝Tcl/Tk,在絕大多數(shù)的 Linux 發(fā)行版中,Tcl/

10、Tk 都是標準選項。不過對于Windows用戶而言,可以在ActiveState上下載到Tcl/Tk 二進制安裝包,下載的地址為 8.4運行的,這里需要下載的是8.4版本的安裝包,大小約為24.6M。 運行下載的安裝文件,會出現(xiàn)如圖所示界面,界面中會顯示安裝包中所含的組件以及相應(yīng)的版本。依次單擊Next按鈕,基本上就完成了ActiveTcl的安裝。,,ActiveTcl安裝界面,9.5.2 編寫Hello World,首先編寫一個簡單的Hello World Tk示例,在編輯器中輸入如代碼所示的代碼:,,Hello world程序演示,9.5.3 Tk部件,Tk中,部件是一種可以執(zhí)行特定功能的

11、圖形對象。界面中的任何圖形對象都可以視為一個小部件。對于 GUI 應(yīng)用程序而言,按鈕、文本、框架和滾動欄都是小部件。本小節(jié)中將介紹幾個基本Tk小部件,并提供有關(guān)每個小部件的示例,除了前面介紹過的按鈕和標簽外,還包括框架、多行文本輸入框和單行文本輸入框。 框架部件(TkFrame),正如其名稱所描述的那樣是一個框架或盒子,通常用來對其他小部件進行分組。,,TkEntry演示,9.5.4 事件處理,窗體中的部件都能響應(yīng)一定的事件,例如鼠標單擊、懸浮或者是鍵盤按鍵等。Tk中可以使用bind方法創(chuàng)建一個特定的事件到代碼塊的綁定。 bind方法接受兩個參數(shù),一個是綁定的事件;另外一個就是響應(yīng)該事件的代碼

12、塊。使用方法,例如綁定鼠標光標移入事件可以寫為: obj.bind(Enter) 或者 obj.bind(Enter) do end,9.5.5 Canvas畫布,Ruby/Tk還提供了TkCanvas類以及其他一些類來支持繪圖功能。一般而言,這樣的一些類都以 Tkc 開頭(c 表示 Canvas)。例如 TkcLine、TkcOval等。下面是一個簡單的程序示例,結(jié)合前一節(jié)介紹的事件綁定方法,實現(xiàn)一個簡單的畫線的畫圖板,能夠使用鼠標不斷在窗口中畫線。,,Canvas畫圖板,9.6 WxRuby應(yīng)用介紹,下面將介紹WxRuby的應(yīng)用。首先要介紹的的依然是如何在計算機中下載并安裝WxRuby。,

13、9.6.1 下載并安裝WxRuby,WxRuby的安裝過程較為簡單,可以使用RubyGems或者去下載WxRuby的源代碼然后在計算機中編譯,顯然使用RubyGems是最簡單快捷的方法。 在命令行窗口中輸入: gem install wxruby 等待gem程序更新完gem列表后,會提示選擇需要安裝WxRuby的版本,如下所示: Bulk updating Gem source index for: http://gems.rubyforge.org Select which gem to install for your platform (i386-mswin32) 1. wxruby 1

14、.9.7 (x86-linux) 2. wxruby 1.9.7 (universal-darwin-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有個初步的認識。代碼將會創(chuàng)建一個簡單的窗口,并在窗口中簡單顯示“Hello world”。 代碼 Hello world程序 #引用WxRuby庫 require wx include Wx

15、 # 創(chuàng)建一個繼承自Wx::App的類 class HelloWorld < App #創(chuàng)建初始化方法 def on_init #創(chuàng)建Hello World Frame helloframe = Frame.new(nil, -1, Hello World) #創(chuàng)建靜態(tài)文本 StaticText.new(helloframe,-1,Hello World) #顯示窗口 helloframe.show() end end #創(chuàng)建App的實例,展示窗體 HelloWorld.new.main_loop,9.6.3 基本控件介紹,從前面的示例中可以看到WxRuby所提供的控件種類是非常多了,基本

16、的控件都有數(shù)十種,這里僅以少數(shù)幾種為例介紹WxRuby中控件的使用,實際上其他控件的使用方法也大同小異。 1Wx::Panel 2Wx::Button 3Wx::TextCtrl 4Wx::BoxSizer 5演繹常見控件,9.6.4 事件處理,圖形界面的程序中必然要涉及到對事件的處理,WxRuby中通過一系列以evt開頭的方法來定義事件的響應(yīng)。例如: #響應(yīng)大小改變的事件 evt_size puts 大小被改變 my_button = Wx::Button.new(self, :label = Press me) #響應(yīng)按鈕被單擊的事件 evt_button(my_button) puts

17、Button被單擊 在事件的響應(yīng)處理過程中,會傳遞一個包含事件信息的事件對象作為參數(shù)進入響應(yīng)的代碼中。里面的信息可能會包括鼠標的位置、按鍵的代碼等。 例如: evt_size | event | puts 現(xiàn)在的大小為:#event.size.width ,9.7 Shoes應(yīng)用介紹,Shoes也是一個跨平臺的圖形界面支持庫,與Ruby/Tk或者WxRuby不同的是Shoes在設(shè)計中借鑒了大量Web特性,同時更加側(cè)重于畫圖以及動畫的功能。,9.7.1 下載并安裝Shoes,Shoes的官方網(wǎng)站地址為 OS X系統(tǒng)、WIndows系統(tǒng)和Linux系統(tǒng)中的運行效果截圖,正好體現(xiàn)了Shoes的跨平臺

18、、圖形繪圖功能的特性。,,Shoes官方網(wǎng)站,9.7.2 第一個Shoes程序,下面介紹如何使用Shoes來構(gòu)建圖形界面程序。首先還是先構(gòu)建一個最簡單的Hello world程序,如代碼所示。 代碼 Shoes的Hello world程序 #創(chuàng)建Shoes APP窗體 Shoes.app :height = 200, :width = 200 do 創(chuàng)建按鈕 button Click me! do #設(shè)置單擊響應(yīng) alert Hello world! end end,,Hello world程序,9.7.3 Stacks和Flows介紹,Shoes中界面中元素的布局方式比較類似于HTM

19、L頁面中的方式。在HTML頁面中元素的顯示方式有block和inline兩種,一種是獨占一行,另外一種排列較為緊湊,類似于流的方式,只有依次排滿了才會排列到下一行。Shoes中與之對應(yīng)的有Stacks和Flows這兩個概念。,,布局排列演示,9.7.4 基本控件,Shoes中支持大部分常用的窗體控件,其中包括Button、Check、EditBox、EditLine、Image、ListBox、Radio等,有許多控件都是直接來自于HTML。這些控件的使用方法都非常簡單,調(diào)用相應(yīng)名稱的方法,并傳入一個Hash參數(shù)即可。,,基本控件演示,9.7.5 繪圖和動畫,Shoes的強項在于繪圖和動畫,它

20、提供了大量的方法能夠繪制各種圖形以及進行顏色和背景填充,另外構(gòu)造動畫的方法也非常簡單。 Shoes所提供的繪圖方法有如下所示的幾種。 畫線方法:line(x1, y1, x2, y2) 畫圓或者橢圓方法:oval(x, y, w, h) 畫方框方法:rect(x, y, w, h) 畫箭頭方法:arrow(x, y, size) 畫星形圖案:star(x, y, p, r, inner),9.8 小結(jié),本章中介紹了Ruby在操作系統(tǒng)方面的應(yīng)用以及構(gòu)建圖形界面。9.1節(jié)中介紹了在Ruby程序內(nèi)部調(diào)用外部程序的方法,隨后9.2節(jié)中介紹了如何創(chuàng)建Ruby命令行程序,讓Ruby自動化完成一些系統(tǒng)的操作,并能夠傳入?yún)?shù)對程序進行控制。隨后把應(yīng)用平臺聚焦在Windows系統(tǒng)中,介紹了如何使用Win32API和Win32OLE來執(zhí)行Windows系統(tǒng)特有的接口或自動化操作。最后幾節(jié)中介紹了如何使用Ruby開發(fā)構(gòu)建圖形界面,對目前較為流行的Ruby圖形界面接口進行了一系列的概述,同時以Ruby/Tk、WxRuby和Shoes為例進行了詳細的應(yīng)用講解。相信在閱讀完本章后,Ruby能夠幫助讀者完成一些繁瑣的任務(wù),成為讀者日常工作和應(yīng)用中的好幫手。,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!