『原創(chuàng)』Python的GUI開(kāi)發(fā):小試wxPython(上)
?????很久沒(méi)有更新部落狗了,主要是沒(méi)時(shí)間(太懶^_^),借著給同事交換鏈接的機(jī)會(huì),胡寫(xiě)它個(gè)一兩篇吧。閑話(huà)少說(shuō),進(jìn)入正題。???????在日常生活中,難免會(huì)遇到一些繁瑣工作(比如數(shù)據(jù)庫(kù)初始化或者備份操作,就拿狗狗的項(xiàng)目實(shí)施工作來(lái)說(shuō),每到一個(gè)現(xiàn)場(chǎng),安裝oracle,創(chuàng)建數(shù)據(jù)庫(kù)—?jiǎng)?chuàng)建表空間—?jiǎng)?chuàng)建用戶(hù)—導(dǎo)入初始化數(shù)據(jù)……),一遍又一遍的重復(fù)著

?????路人甲:你丫還是程序員吶,這種事情交給CPU做就可以了嘛~
?????無(wú)奈,誰(shuí)讓咱吃了這碗飯呢,既然如此,還是抗起鋤頭,自己寫(xiě)程序來(lái)解決吧,要不連路人都瞧不起了

?????麻雀雖小,五臟俱全,咱們涂鴉也要做得規(guī)范點(diǎn):
第一步,配置開(kāi)發(fā)環(huán)境
????????
?????這里選擇wxpython作為構(gòu)建庫(kù),為什么不選tk、pyqt或者gtk呢?因?yàn)槲也涣私鈄_#。
1、介紹:wxpython是一個(gè)……(此處省略若干google搜集而來(lái)的文字,官站http://wxpython.org/?)
2、下載地址:
http://surfnet.dl.sourceforge.net/sourceforge/wxpython/wxPython2.6-win32-unicode-2.6.3.3-py24.exe??????
3、版本:截止本文發(fā)布,最新版本為2.6.3.3,我們選擇對(duì)應(yīng)python2.4的unicode版本,因?yàn)楝F(xiàn)在很多三方庫(kù)都還不支持2.5。
4、安裝:首先,得到python的老家http://www.python.org/去下載python安裝,版本得和wxpython相對(duì)應(yīng),2.4.x都可以;然后再安裝三方庫(kù),比如wxpython和cx_Oracle,后者是一個(gè)用來(lái)訪問(wèn)orecle的庫(kù),符合dpapi2.0標(biāo)準(zhǔn),使用非常方便,這里下載:http://sourceforge.net/projects/cx-oracle/
5、IDE:有很多選擇,比如spe、Komodo、pydev或者干脆就用自帶的IDLE也行。針對(duì)java開(kāi)發(fā)人員,pydev是最好的選擇,她是一個(gè)eclipse的插件,支持代碼提示和自動(dòng)完成,很不錯(cuò),最新版本1.2.2,到這里下載安裝:
http://www.fabioz.com/pydev/download.html
請(qǐng)注意,這個(gè)版本要求eclipse3.2以上才能用。也可以用在線升級(jí)的方式安裝,地址:
http://www.fabioz.com/pydev/updates
其中包含了兩個(gè)插件,pydev和pydev extensions,第二個(gè)是pydev的擴(kuò)展,為其添加了不少新功能,雖然要注冊(cè),但也無(wú)妨,頂多就是每隔半小時(shí)跳出一個(gè)窗口提示一下,不影響正常使用。
?
第二步,設(shè)計(jì)界面原型
?????開(kāi)發(fā)環(huán)境搭建好了,不用急著馬上編碼,就我個(gè)人的習(xí)慣,做GUI程序的話(huà)還是先設(shè)計(jì)出界面原型的好。首先分析一下,我們需要實(shí)現(xiàn)些什么功能:
1、通過(guò)用戶(hù)指定的數(shù)據(jù)庫(kù)管理員帳號(hào)、密碼以及oracle數(shù)據(jù)庫(kù)服務(wù)器地址,建立連接;
2、建立相應(yīng)的表空間( TableSpace ),命名及存放地址由用戶(hù)指定;
3、建立新用戶(hù),并將提供的數(shù)據(jù)庫(kù)備份文件導(dǎo)入服務(wù)器;
????以上是針對(duì)新建數(shù)據(jù)庫(kù)的操作,如果表空間和用戶(hù)已經(jīng)存在,需要恢復(fù)數(shù)據(jù)庫(kù)的話(huà),只需要?jiǎng)h除并重建此用戶(hù),再導(dǎo)入數(shù)據(jù)即可。同時(shí),提供一個(gè)備份數(shù)據(jù)庫(kù)的功能,用于將現(xiàn)有數(shù)據(jù)庫(kù)導(dǎo)出為某個(gè)備份文件,方便恢復(fù)數(shù)據(jù)。
?????根據(jù)以上分析,可以初步畫(huà)出界面原型。這里推薦一個(gè)叫做GUI Design Studio的小玩意,用起來(lái)挺方便的,軟件很小,還支持不少組件的繪制,操作上也很簡(jiǎn)單。好像Visio也可以畫(huà)?我沒(méi)用過(guò),可能更專(zhuān)業(yè)些,但是寫(xiě)小工具解決小問(wèn)題嘛,能節(jié)省力氣就節(jié)省力氣了,難得裝那么大個(gè)東西。GUI Design Studio內(nèi)置了很多常見(jiàn)的界面組件,比如window,dialog,tab,toolbar和menu等,繪制操作也很簡(jiǎn)單,在右邊的面板里選擇相應(yīng)的組件,拖放到畫(huà)布上就可以了,雙擊每個(gè)組件可以彈出相應(yīng)的設(shè)置選項(xiàng),可以設(shè)置樣式、位置、大小等,比如window組件,可以設(shè)置窗口標(biāo)題,字體,以及顯示在右上角的按鈕等。頁(yè)面布局最簡(jiǎn)單的辦法就是通過(guò)鼠標(biāo)拖動(dòng)來(lái)控制大小和位置,而且,在將toolbar等組件添加到window上的時(shí)候,會(huì)自動(dòng)“吸附”到合適的位置,非常方便。下面就是我初步設(shè)定的界面,用到了window、group、text、editbox、option和icon:
可以看到,我在一個(gè)窗口上安排了三個(gè)group,每個(gè)group中又分別放置了一些文本、輸入框、選擇按鈕和圖標(biāo),然后是三個(gè)按鈕排列在右下腳,怎么編碼實(shí)現(xiàn)這個(gè)布局,稍后會(huì)講解的,現(xiàn)在先看個(gè)大概,知道我們要做成什么樣子。其實(shí)這個(gè)GUI Design Studio不僅可以繪制靜態(tài)的圖形界面,也可以設(shè)計(jì)一些簡(jiǎn)單的交互動(dòng)作,比如點(diǎn)擊某個(gè)按鈕出現(xiàn)某個(gè)部件啊什么的,這里就不再詳述了,有興趣的可以自己試試。
?
?????開(kāi)發(fā)環(huán)境和界面設(shè)計(jì)都搞完了,下一步就是考慮如何編碼實(shí)現(xiàn),利用wxpython做這件事非常簡(jiǎn)單,這里我先給出最終的運(yùn)行界面,具體的編寫(xiě)過(guò)程下次再說(shuō)。雖然和之前畫(huà)的還是有點(diǎn)點(diǎn)差別,但總體來(lái)說(shuō)設(shè)計(jì)目標(biāo)還是達(dá)到了,呵呵:
???
posted on 2006-07-26 13:49 笨笨狗 閱讀(18509) 評(píng)論(3) 編輯 收藏 所屬分類(lèi): python 美女蛇