咖啡、生活、美女蛇

          游離于java和python之間……

          常用鏈接

          統(tǒng)計(jì)

          他山之石

          最新評(píng)論

          『原創(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)解決吧,要不連路人都瞧不起了。笑話(huà)歸笑話(huà),面對(duì)如此簡(jiǎn)單的問(wèn)題,當(dāng)然也要選擇最簡(jiǎn)單的方式來(lái)解決,下面請(qǐng)跟隨狗狗一起,利用python來(lái)處理這件小事,感受一下動(dòng)態(tài)語(yǔ)言的簡(jiǎn)潔和強(qiáng)大吧!

          ?????麻雀雖小,五臟俱全,咱們涂鴉也要做得規(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:

          r_gui.JPG

          可以看到,我在一個(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á)到了,呵呵:
          ???
          r_gui2.JPG

          posted on 2006-07-26 13:49 笨笨狗 閱讀(18509) 評(píng)論(3)  編輯  收藏 所屬分類(lèi): python 美女蛇

          評(píng)論

          # re: 『原創(chuàng)』Python的GUI開(kāi)發(fā):小試wxPython(上) 2006-10-03 01:50 路過(guò)

          下 沒(méi)有嗎?
          很期待啊  回復(fù)  更多評(píng)論   

          # re: 『原創(chuàng)』Python的GUI開(kāi)發(fā):小試wxPython(上) 2006-10-20 11:07 Javaphua

          狗狗啊,很說(shuō)我好心動(dòng),改天要跟你好好學(xué)習(xí).我們兩個(gè)都是常出差在外,有什么好的東東就發(fā)來(lái)我看看啊!~~~  回復(fù)  更多評(píng)論   

          # re: 『原創(chuàng)』Python的GUI開(kāi)發(fā):小試wxPython(上) 2006-11-20 17:57 san

          小狗,把那源碼和那個(gè)GUI Design Studio發(fā)我一份。我最近也在wxpython
          python.san@gmail.com  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 保德县| 香河县| 新昌县| 平昌县| 石阡县| 云霄县| 东光县| 南安市| 潢川县| 偃师市| 福泉市| 梁河县| 普格县| 常山县| 密云县| 同德县| 通许县| 柳河县| 普格县| 呼伦贝尔市| 龙胜| 会理县| 博乐市| 兖州市| 印江| 东乡县| 綦江县| 昆山市| 福泉市| 邻水| 彰武县| 荥阳市| 东安县| 兰州市| 乌恰县| 文安县| 临西县| 手游| 南城县| 永和县| 鄂伦春自治旗|