PYthon模塊使用教程9_第1頁
PYthon模塊使用教程9_第2頁
PYthon模塊使用教程9_第3頁
PYthon模塊使用教程9_第4頁
PYthon模塊使用教程9_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、add模塊進(jìn)度條模塊os模塊contacts模塊zlib模塊fy_marage模塊e32模塊sysinfo模塊正則表達(dá)式 模塊Cfileman模塊appuifw 模塊appuifw2模塊scrollpage模塊logs模塊codecs模塊struct模塊random模塊Form e32dbm的運用調(diào)用系統(tǒng)進(jìn)度條marshal模塊用法add模塊作者是飛影7610,含有一個Add主類,有三個功能,分別為:1)返回路徑-file方法2)返回表情地址-face方法3)打開幫助-about方法1)file方法:file(path,ext=,title=選擇文件.decode(utf8)path為路徑ex

2、t為文件后綴title為標(biāo)題2)face方法:face(ini,mbm=None,title=選擇表情.decode(utf8):ini為配置文件路徑mbm為None時既表示它的會路徑名與ini為配置文件路徑相同,只是后綴名為.mbmtitle為標(biāo)題此方法通過傳遞一個ini配置文件全路徑名來選擇表情代碼ini配置文件格式為:標(biāo)題1,face/1.gif標(biāo)題2,face/2.gif3)about方法:about(path,title=關(guān)于幫助.decode(utf8):path為幫助文件全路徑名title為標(biāo)題進(jìn)度條模塊使用方法:import progressbartwpb = progress

3、bartw.ProgressBarTW()pb.begin_progress(500)for i in range(500):   pb.do_progress(i)pb.end_progress()注意500為你要的進(jìn)度總數(shù)(修改版)作者:飛影7610progressbartw(修改版)不用先定義窗口就可以使用了,可直接替換舊版本示例代碼如下(模塊中已內(nèi)置測試代碼,可用ped直接測試):def ru(s):return s.decode(utf-8)# ProgressBarTW(1,1)# 參數(shù)1:1為系統(tǒng)字體,窗口在中間(2為大字體,窗口偏下)# 參數(shù)2:1為后臺時隱

4、藏進(jìn)度條,0為不隱藏# 兩個參數(shù)都可缺省,缺省值都是1p = ProgressBarTW(1,1)# p.set_window_size(176,36) # 可以自定義窗口大小p2 = ProgressBarTW(2,0)# p2.set_window_size(176,36) # 可以自定義窗口大小p.begin_progress(5)# p.begin_progress(5,ru(當(dāng)前任務(wù)進(jìn)度) # 可自定義標(biāo)題p2.begin_progress(5)for i in xrange(5):   p.do_progress(i)   p2.note_t

5、ext=(ru(任務(wù)進(jìn)度 (%d/%d)%(i 1,5)   p2.do_progress(i)p.end_progress()p2.end_progress()注:最好不要替換原來的模塊,因為此修改版跟原版的功能存在差別,你可以放在腳本運行目錄中來使用下面列出了一些在os模塊中比較有用的部分。它們中的大多數(shù)都簡單明了。os.getcwd()函數(shù)得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑。os.getenv()和os.putenv()函數(shù)分別用來讀取和設(shè)置環(huán)境變量。os.listdir()返回指定目錄下的所有文件和目錄名。os.remove()函數(shù)用來刪除一個文

6、件。os.system()函數(shù)用來運行shell命令。os.path.split()函數(shù)返回一個路徑的目錄名和文件名。例如os.path.split('/home/swaroop/byte/code/poem.txt') ('/home/swaroop/byte/code', 'poem.txt')os.path.isfile()和os.path.isdir()函數(shù)分別檢驗給出的路徑是一個文件還是目錄。類似地,os.path.exists()函數(shù)用來檢驗給出的路徑是否真地存在。利用contacts模塊可以選擇聯(lián)系人 import con

7、tacts, appuifwdb = contacts.open()names = numbers = for i in db:                                              #讀取所有的聯(lián)系人 names.append(db.title) num = db.find('mobile_number

8、') if num:  numbers.append(num0.value) # first mobile else: numbers.append(None)i = appuifw.selection_list(names)      #選擇列表顯示所有已讀取print 'number =',numbers加入flashy(擴(kuò)展模塊)可以發(fā)閃信:import flashyflashy.flashsms_send(u'012345678',u'Hello world!'

9、)zlib模塊主要用來壓縮數(shù)據(jù)用的,主要講一下可用函數(shù)。1、compress()壓縮數(shù)據(jù)。2、decompress()解壓指定已壓縮數(shù)據(jù)。3、crc32()計算校驗CRC-32值。shell界面>>> import zlib>>> s='license for morein for mation Ped'>>> len(s)33>>> t=press(s)#壓縮字符串s>>> len(t)36由于原來的長度小于字典長度 所以壓縮后反而更大,但是文件大的話就會有壓縮的效果>>&g

10、t; u=zlib.decompress(t)#解壓字符串t>>>print u'license for morein for mation Pd'#一個字符串CRC-32值是不會變的,不管壓縮前或解縮后,理論應(yīng)該可以計算一個文件的CRC-32的值>>> zlib.crc32(s)1644948177>>> zlib.crc32(u)1644948177如果兩個返回值不同,說明解壓時出了問題。開發(fā)作者:飛影7610模塊名稱:fy_marage模塊版本:v1.0測試機(jī)型:N7610測試人員:飛影7610支持機(jī)型:s60所有機(jī)型

11、作者郵箱: feiying7610作者QQ: 654709957模塊介紹:這是一個類似文件管理的模塊,集合了重命名、新建目睹、刪除、快速找查與詳細(xì)找查功能。同時模塊運用了全新的算法,打開目錄時,速度特快,還可顯示文件大小,加上運用了支持快捷鍵的圖形菜單,運用起來更方便。模塊快捷鍵如下:1鍵-過濾不含中文名的文件與文件夾29鍵-快速找查0鍵-詳細(xì)找查c鍵-返回上一找查狀態(tài)*鍵(短按)-跳至上一頁*鍵(長按)-跳至頂端#鍵(短按)-跳至下一頁#鍵(長按)-跳至底端此模塊只有一個Manager類,創(chuàng)建實例后,通過調(diào)用AskUser方法來獲取路徑。AskUser方法包含5個參數(shù),依次為:(1)path

12、: 設(shè)定初始目錄,缺省值為空(2)find:設(shè)定要找查文件方式,有三種方式,file、*和all。file方式下找查對象為文件,*方式下找查對象為文件夾,all方式下找查對象可以為文件也可以為文件夾。缺省值為file(3)ext:設(shè)定找查文件對象的后綴名,只有在find設(shè)定為非*時才有效。缺省值為 (4)mark:設(shè)定是否為標(biāo)記模式,標(biāo)記模式下返回的是一個列表,返之為字符串,缺省值為False,即非標(biāo)記模式(5)back:設(shè)定是否允許用戶返回path的上級目錄,缺省值為True,既允許返回上級目錄。按返回時,返回None注意:非標(biāo)記模式下返回的字符串是沒有定義decode(utf8)編碼的,如

13、果你要打印請加上.decode(utf8),否則令中文時會亂碼為何不加編碼?因為我們得到文件路徑后,往往是要作為文件對象來處理,如果已經(jīng)定義decode(utf8)編碼了,又得定義encode(utf8)了而標(biāo)記模式下返回的列表中的元素也是沒有定義編碼的,這一點要注意。e32模塊提供了Symbian系統(tǒng)級的服務(wù),可以實現(xiàn)UI以及標(biāo)準(zhǔn)Python庫無法完成的功能。模塊函數(shù) 以下函數(shù)都定義在e32模塊中(同時沒有定義在任何類中):ao_yield() 使高優(yōu)先級AO進(jìn)入等待,讓步于其他對象的調(diào)度。注意,可能造成UI運行在線程上下文環(huán)境中。 (注:該函數(shù)一個常用的地方是配合鍵盤事件的響應(yīng)。例如,要求

14、用戶按某個特定的按鍵之后才能執(zhí)行后續(xù)操作。)ao_sleep(interval , callback ) (注:中括號里面是可選項,下同。ao_sleep(延時秒數(shù)數(shù)值,回調(diào)函數(shù)(可選) 延時interval秒,但不將其他調(diào)度掛起。如果設(shè)定了callback,則延時結(jié)束后會調(diào)用callback。ao_callgate(wrapped callable) 將wrapped_callable封裝到返回的callgate對象中(可在任何線程中調(diào)用)。于是,調(diào)用callgate的同時也會自動在上下文環(huán)境中調(diào)用wrapped_callable,同時可傳遞自變量。這是Symbian系統(tǒng)中典型的AO封裝方法

15、。 (注: ao_callgate(封裝對象))drive_list() 返回可用的驅(qū)動器列表。 (注:一般有手機(jī)閃存盤c、內(nèi)存緩沖盤d、存儲卡e、固件盤z)file_copy(target name, source name) 將源文件復(fù)制為目標(biāo)文件。必須是完整路徑。 (注:file_copy(目標(biāo)文件路徑,源文件路徑))in_emulator() 如果當(dāng)前程序是在模擬器上運行則返回1,在手機(jī)上運行則返回0。set_home_time(time) 設(shè)置手機(jī)時間。pys60_version 返回PyS60的版本及附加信息。示 例: >>> import e32 >>

16、;> e32.pys60_version 1.2 final pys60_version info 返回一個包含PyS60版本信息的五元組:(主版本號、副版本號、附加版本號、發(fā)布類型、序列代號)除發(fā)布類型是字符串外,其他都是整型數(shù)據(jù)。如果發(fā)布類型不是“final”則意味著這是一個還在開發(fā)中的版本。例如:PyS60 1.2將返回 (1, 2, 0, final, 0) s60_version_info 返回一個包含PyS60 SDK版本信息的二元組。 其中: (1, 2 )代表S60 1st (2, 0 )代表S60 2nd (2, 6 )代表S60 2nd FP2 (2, 8

17、)代表S60 2nd FP3 (3, 0 )代表S60 3rd Python代碼 >>> import e32   >>> e32.pys60_version   1.2.0 final   >>> e32.pys60_version_info   (1, 2, 0, final, 0)   >>> e32.s60_version_info   (2, 0)   >>>

18、;is_ui_thread() 如果運行在UI線程上下文環(huán)境中則返回True,否則返回False。start_exe(lename, command ,wait ) 啟動一個Symbian系統(tǒng)的可執(zhí)行文件,并用其執(zhí)行某些操作。如果設(shè)定了wait,則會激活同步監(jiān)測用于捕獲程序的退出狀態(tài)。其中,正常退出返回0,異常退出返回2。 (注:start_exe(完整的可執(zhí)行文件路徑(Unicode編碼),命令參數(shù),程序退出監(jiān)測(可選)start_server(lename) 以獨立進(jìn)程運行Python腳本,作為后臺服務(wù)程序。需要注意的是,這種情況下無法調(diào)用appuifw模塊。(注:start_server

19、(完整的可執(zhí)行文件路徑(Unicode編碼)reset_inactivity() 重置設(shè)備空閑時間。與此同時,背景燈將被點亮。 (注:設(shè)備空閑是指用戶沒有任何按鍵動作。這個函數(shù)可以用來保持背景燈長亮。)inactivity() 返回用戶上一次按鍵動作的時間。e32 Symbian系統(tǒng)級的服務(wù)模塊: Ao_lock類Ao_lock()類 生成Ao_lock實例。此AO依賴于同步服務(wù)。它可以在主線程上運行,但不影響UI事件響應(yīng)。如果程序的某個線程處在Ao_lock中,那么它就不能關(guān)閉。而且,不得使用多個Ao_lock.wait,否則會引起AssertionError。Ao_lock實例支持下列方法

20、: wait() 處在Ao_lock中的線程將被掛起,直到獲得釋放信號。需要注意,僅支持一個掛起,所以絕對不能遞歸調(diào)用。只有產(chǎn)生lock對象的線程才能調(diào)用wait,而進(jìn)入wait后,其他AO仍處于激活狀態(tài),所以UI不會被凍結(jié)。然而這就面臨一個問題,UI響應(yīng)可能處在Ao_lock中的線程上下文環(huán)境中。這一點必須在設(shè)計邏輯結(jié)構(gòu)時考慮。signal() 發(fā)出信號,釋放被掛起的線程。e32 Symbian系統(tǒng)級的服務(wù)模塊: Ao_timer類 可以說,Ao_timer是對e32.ao_sleep的擴(kuò)充。因為,在e32.ao_sleep產(chǎn)生的休眠沒有結(jié)束的情況下用戶強(qiáng)行退出程序,可能造成嚴(yán)重的

21、后果。Ao_timer正是為解決這個問題而設(shè)計的,它產(chǎn)生的休眠即使沒有結(jié)束,用戶也可以安全地退出程序。Ao_timer()類 程序的某個線程處于Ao_timer休眠時,理論上不應(yīng)該退出。每個Ao_timer實例只能產(chǎn)生一個休眠。生成Ao_timer實例。此AO依賴于休眠服務(wù)。它可以在主線程上運行,但不影響UI事件響應(yīng)。Ao_timer實例支持下列方法: after(interval ,callback ) 休眠 interval秒,不影響程序調(diào)度。如果設(shè)定了callback,則在休眠結(jié)束后調(diào)用callback。 (注:after(休眠的秒數(shù)數(shù)值,回調(diào)函數(shù)(可選)cancel() 將尚

22、未結(jié)束的休眠取消。sysinfo 獲取系統(tǒng)信息 sysinfo模塊用于獲取S60手機(jī)的系統(tǒng)信息。注 意:ring type()不支持S60 1st機(jī)型。sysinfo模塊中含有下列函數(shù):battery() 獲取當(dāng)前電池的電量信息。 S60 2ND FP1(S60 2.1)之前的手機(jī)滿格為7, S60 2ND FP1之后的手機(jī)滿格為100。電量耗盡則為0。對于模擬器,這個數(shù)值永遠(yuǎn)是0。 注 意: 如果手機(jī)正在充電,那么就不能獲得正確數(shù)值。 display_twips() 獲取顯示高寬值,以緹(twip)為單位。關(guān)于緹的定義參閱章節(jié)10。 display_pixels() 獲取

23、顯示高寬值,以象素為單位。free_drivespace() uC:100 獲取驅(qū)動器可用空間信息。形如 。注意,盤符后面跟著一個冒號(:)imei() 獲取手機(jī)的IMEI碼。對于模擬器,永遠(yuǎn)是u000000000000000.max_ramdrive_size() 獲取手機(jī)支持的內(nèi)存上限。total_ram() 獲取手機(jī)的內(nèi)存總量。free_ram() 獲取手機(jī)的可用內(nèi)存量。 total_rom() 獲取手機(jī)的固件存儲量。ring_type() 獲取當(dāng)前響鈴類型。不支持S60 1st機(jī)型。包括:normal, ascending, ring once, beep,silent.&#

24、160;(注:依次為“連續(xù)響鈴、漸強(qiáng)、響鈴一次、蜂鳴、無聲”)os_version() 獲取手機(jī)的系統(tǒng)版本信息。用三元組表示:(主版本號,副版本號,附加版本號) 數(shù)值范圍定義如下 主版本號:0 127 副版本號 :0 99 附加版本號:0 32767 signal_bars() 獲取當(dāng)前的網(wǎng)絡(luò)信號強(qiáng)度。用07表示:0即無信號,7即信號最強(qiáng)。 對于模擬器,這個數(shù)值永遠(yuǎn)是0。signal_dbm() 獲取當(dāng)前的網(wǎng)絡(luò)信號強(qiáng)度,以dBm為單位。對SDK 2.8以上版本有效。 對于模擬器,這個數(shù)值永遠(yuǎn)是0。 sw_version() 獲取軟件的版本信息。形如:uV 4.09.1 26-02-04 NHL

25、-10 (c) NMP 對于模擬器,這個返回信息永遠(yuǎn)是 uemulator.Cfileman模塊fileman = cfileman.FileMan()創(chuàng)建一個對象類FileMan ,進(jìn)一步,我們有以下屬性fileman.drive_space()返回字典的吊稱和磁盤的大小(自由和總)在字節(jié)fileman.listdir (路徑 , filteratt , filtersort , typeflag )返回一個元組的文件夾和文件選定的目錄路徑(路徑必須以雙引號)(1)filteratt設(shè)置要顯示的文件類型EAttMatchMask -顯示所有對象(文件夾,隱藏文件和系統(tǒng)文件) ,默認(rèn)值EAtt

26、Normal -任何文件或文件夾的隱藏和系統(tǒng)屬性EAttReadOnly -只讀EAttHidden -隱藏EAttSystem -系統(tǒng)EAttDir - 目錄EAttArchive -存檔EAttMatchExclude -除去提供的屬性外的所有文件,例如EAttMatchExclude | EAttHidden就是顯示非隱藏的文件EAttMatchExclusive -包括所有符合提供屬性的文件,例如EAttMatchExclusive | EAttHidden顯示隱藏的文件(2)filtersort設(shè)置文件排序ESortNone -默認(rèn)ESortByName -按名字ESortByExt

27、 -按類型ESortBySize -按文件大小ESortByDate -按最后修改日期EAscending -升序排列,默認(rèn)EDescending -降序EDirDescending -只有文件夾中,使其降序排列(3)typeflag管理的類型返回的數(shù)據(jù)默認(rèn)為2元組,文件夾和選定文件的目錄,如果您設(shè)置typeflag = 0則函數(shù)返回一個元組fileman.set_att (路徑, set_att , clear_att )設(shè)置提供路徑文件或文件的屬性set_att屬性或clear_att刪除EAttReadOnly -只讀EAttHidden -隱藏EAttSystem -系統(tǒng)EAttArc

28、hive -存檔fileman.get_att (路徑) 的屬性返回一個對象路徑fileman.mkdir (路徑 , revflag )創(chuàng)建一個文件夾路徑論點revflag負(fù)責(zé)遞歸設(shè)立失蹤的文件夾,默認(rèn)情況下它是0fileman.rename(pathOld , pathNew )重命名對象pathOld舊名字pathNew新名字filename.file_copy(pathOld , pathNew , revflag )復(fù)制文件pathOld pathNew (路徑必須以雙引號)revflag參數(shù)可能如下EOverWrite -覆蓋該文件ERecurse -遞歸創(chuàng)建丟失的文件夾這可能是通

29、過運營商共享|fileman.file_move(pathOld , pathNew , revflag )移動文件pathOld pathNew (路徑必須以雙引號)revflag參數(shù)可能如下EOverWrite -覆蓋該文件是否已經(jīng)存在ERecurse -遞歸創(chuàng)建丟失的文件夾這可能是通過運營商共享fileman.del(路徑)刪除對象的路徑,如果此目錄被刪除,所有的附件fileman.set_callback ()設(shè)置回調(diào)函數(shù)(通常通過一個參數(shù)的int類型)被稱為當(dāng)您刪除,復(fù)制和移動文件時如果您刪除一個文件的功能是傳遞的值為0時,該文件刪除,并取消1時完成如果您夊制/移動大文件的傳輸功能s

30、kopirovavschihsya數(shù)據(jù)大小(方便進(jìn)度欄)appuifw 模塊提供了S60UI應(yīng)用程序框架。注意:此服務(wù)必須運行在主線程上下文環(huán)境,更準(zhǔn)確地說是UI程序的初始化線程。 UI控件管理著所有的應(yīng)用程序窗口,這是很顯然的。 對于含有多個視圖的程序,可以用導(dǎo)航面板的選項卡來切換視圖。 對話框比普通UI控件享有更高優(yōu)先級,這就是說,對話框往往都會置頂。 UI控件是由Python類型構(gòu)建的,可用的類型有:*Text*Listbox*Canvas 一旦構(gòu)建了程序主體(app.body),相應(yīng)的UI控件就會隨之出現(xiàn)在屏幕上。Form 是一種萬能的對話框類型。 Content_handl

31、er用于實現(xiàn)UI程序之間的高層共性對話,以期簡化MIME類型的操作內(nèi)容。 下列函數(shù)定義了常用的對話框:*note*query*multi_query*s election_list*multi_s election_list *popup_menu 一旦執(zhí)行相應(yīng)函數(shù),就會出現(xiàn)置頂?shù)膶υ捒?,讀取用戶輸入的信息以及確定或取消等操作。然而Form是 特例,它以實例操作,所以只有被執(zhí)行以后才能產(chǎn)生對話框。 軟鍵響應(yīng)默認(rèn)為S60平臺的初始設(shè)定。在沒有對話框的情況下,按右軟鍵退出,按左軟鍵彈出選項菜單。 PyS60中可以非常簡單地設(shè)計菜單和右軟鍵事件,同樣地,軟鍵事件對話框也可以自行設(shè)計,比如OK和Can

32、cel(中文機(jī)型顯示為確定和取消)。但是如果 要做出獨特的對話效果,那么最好用Form。模塊函數(shù)以下函數(shù)都定義在appuifw模塊中(同時沒有定義在任何類中): available_fonts() 獲取手機(jī)可用的字體列表(Unicode編碼)。 query(label, type , initial_value ) (shagon注:query(提示信息,輸入類型,缺省值(可選) 生成一個單域?qū)υ捒?。label是需要顯示的提示信息,type是要求輸入的數(shù)據(jù)類型,有以下幾種:*“text“ *“code“ *“number“ *“date“ *“time“ *“query“ *“float“ 如

33、果設(shè)定了initial_value,它將作為輸入數(shù)據(jù)的缺省值(注:意思是如果用戶不輸入任何數(shù)據(jù)而直接按確定,那么就返回這個值)。它有如下定義: *對于文本輸入框(“text“ , “code“ ),缺省值是Unicode字符。 *對于數(shù)值輸入框( “number“ ),缺省值是數(shù)字。*對于日期輸入框(“date“),缺省值是上個午夜與時間原點的間隔。 確認(rèn)對話框(“query“)和時間輸入框(“time“)都沒有缺省值,它們分別返回True/None和相應(yīng)的時間數(shù)值。對于浮點數(shù)輸入框(“float“)即便設(shè)定了默認(rèn)值也無效。所有的對話框,如果用戶取消都返回None。 multi_qu

34、ery(label_1, label_2) 生成一個雙域文本輸入對話框(Unicode編碼),返回二元組(label_1, label_2)。如果取消則返回None。 (注:multi_query(第一項提示信息,第二項提示信息) note(text , type , global ) 生成一個提示對話框。text(Unicode編碼)為要顯示的通知信息,type是提示類型,有“info“,“error“和“conf“(注:依次為錯誤通知、信息通知、確認(rèn)通知)。缺省為“info“ 如果設(shè)定了一個非零整數(shù)作為global ,將生成一個全局通知。意思是說即便是后臺程序調(diào)用也會彈

35、出提示對話框。type支持的對話框與標(biāo)準(zhǔn)對話框完全一樣。 (注:note(通知信息,通知類型(缺省為“info“),全局參數(shù)(可選) popup_menu(list , label ) 生成一個彈出菜單列表。支持一元組或多元組(必須是Unicode編碼)。一元菜單直接顯示全部項目, 多元菜單根據(jù)用戶操作顯示相應(yīng)項目。返回選中的項目,如果取消則返回None。 (shagon注:popup_menu(菜單表項,菜單主標(biāo)題(可選) selection_list(choices , search_eld=0 ) 生成一個選擇列表。返回用戶選中的項目,如果取消則返回None。choi

36、ces是列表項。search_eld是查找面板參數(shù),缺省為0即禁用,1為啟用。 注:selection_list(列表表項,查找面板參數(shù)(缺省為0即禁用)。當(dāng)列表項目太多的時候才適合啟用查找面板快速找到選項。但項目很少的情況下應(yīng)該禁用,否則反而影響用戶視線。) multi_s election_list(choices , style=“checkbox“, search eld=0 ) 生成一個多選列表或可標(biāo)記列表。返回用戶選中的所有項目(一個元組),如果取消則返回None。 choices是列表項。style是列表類型,有“checkbox“和“checkmark“,分別生成多選

37、列表和可標(biāo)記列表. 缺省為“checkbox“。在多選列表中直接用導(dǎo)航鍵選中項目,而在可標(biāo)記列表中還需要筆形鍵的配合。search_eld 是查找面板參數(shù),缺省為0即禁用,1為啟用。(shagon注:multi_s election_list(列表項,列表類型(缺省為“checkbox“),查找面板(缺省為禁用)。 當(dāng)列表項目太多的時候才適合啟用查找面板快速找到選項。但項目很少的情況下應(yīng)該禁用,否則反而影響用戶視線。) 示例: tuple = appuifw.multi_s election_list(L, style=“checkmark“, search_field=1) 事實上,一旦調(diào)用

38、了appuifw模塊,馬上就會生成唯一的application實例,不過實例名稱被改為app。Application 類 Application實例含有以下屬性: body 設(shè)定程序窗體。目前支持Text,Listbox,Canvas和None。(shagon注:None就是使用缺省窗體) exit_key_handler 設(shè)定右軟鍵響應(yīng)事件。不設(shè)定或設(shè)定為None都恢復(fù)為缺省設(shè)定。 (shagon注:缺省設(shè)定為退出、取消等操作) menu 設(shè)定程序菜單。有兩種類型: *(title, callback) 普通菜單。*(title, (title, callback) . ) 含有子菜單的多級

39、菜單。 title(U nicode編碼)是菜單項標(biāo)題,callback是其響應(yīng)事件。 菜單項的上限是30個。 示例: appuifw.app.menu = (u“Item 1“, item1), (u“Submenu 1“, (u“Subitem 1“, subitem1), (u“Subitem 2“, subitem2) screen 設(shè)定UI屏幕模式。可選模式有“normal“,“l(fā)arge“和“full“(shagon注:依次為標(biāo)準(zhǔn)屏、大屏、全屏) 示例: appuifw.app.screen=“normal“ (標(biāo)準(zhǔn)屏.顯示標(biāo)題面板和控制面板.) appuifw.app.scree

40、n=“l(fā)arge“ (大屏.顯示控制面板.) appuifw.app.screen=“full“ (全屏.) title 設(shè)定標(biāo)題面板的標(biāo)題。必須是U nicode編碼。(注:只有標(biāo)準(zhǔn)屏模式下才能顯示) focus 程序焦點。參數(shù)0表示丟失焦點,1表示恢復(fù)焦點。 當(dāng)程序在前臺與后臺之間切換,或者進(jìn)入/退出屏幕保護(hù)時,將涉及到焦點的問題。(注:可以這樣理解,如果設(shè)定了焦點,那就可以在切換到前臺時執(zhí)行一種操作,切換到后臺時執(zhí)行另一種操作。一般地,按掛機(jī)鍵(紅鍵)就是讓程序在后臺運行。) 示例: >>> import appuifw >>> d

41、ef cb(fg): . if(fg): . print “foreground“ . else: . print “background“ . >>> appuifw.app.focus=cb >>> 程序切換到后臺將顯示: >>> background >>> 程序切換到前臺將顯示: >>> foreground 注意:如果焦點事件設(shè)定有誤,將引起程序錯誤。例如在諾基亞6600上有可能引起無法停止的TypeError。 orientation 設(shè)定程序風(fēng)格(只適用于S60 3rd機(jī)型)??蛇x項有:“a

42、utomatic“,“portrait“,“l(fā)andscape“.(shagon注:依次為“自動“,“肖像“,“風(fēng)景“)。缺省值是“automatic“ 。Application實例支持下列方法: activate_tab(index)激活選擇卡視圖。index是選項卡組(從0開始)。 full_name()返回當(dāng)前在Python解釋器里運行的程序名稱(U nicode編碼)。 uid()返回當(dāng)前在Python解釋器里運行的程序UID(U nicode編碼)。 set_exit()在當(dāng)前操作結(jié)束后退出程序。 set_tabs(tab_texts ,callback=None )設(shè)定選項卡。ta

43、b_texts是一列U nicode字符串。當(dāng)用導(dǎo)航鍵在選項卡之間切換,可以變更視圖, 同時調(diào)用相應(yīng)的callback。如果tab_texts為空或只有一個元素,上述功能無效。(注:set_tabs(選項卡項目,回調(diào)函數(shù)(可選) layout(layout_id)注意:只適用于S60 2nd FP3 以上機(jī)型。返回layout_id項目的大小和位置(二元組)。位置以屏幕左上角為起始點。layout_id 是定義在appuifw模塊中的常量:EScreen 屏幕 EApplicationWindow 程序窗體(占據(jù)整個屏幕的窗體) EStatusPane 狀態(tài)面板(大部分程序

44、都有狀態(tài)面板) EMainPane 主面板(所有程序都有主面板) EControlPane 控制面板 ESignalPane 信號面板(顯示信號強(qiáng)度) EContextPane 上下文面板(顯示運行中的程序)(shagon注:通常是顯示程序的圖標(biāo)) ETitlePane 標(biāo)題面板(顯示程序名稱或自定義標(biāo)題) EBatteryPane 電池面板(顯示電池電量信息) EUniversalIndicatorPane 通用指示器面板(引起用戶的注意) (shagon注:比如屏幕右上角的那個電池圖案) ENaviPane 導(dǎo)航面板(顯示應(yīng)用程序狀態(tài)、用戶輸入狀態(tài)以及其他相關(guān)信息) EFindPane 查

45、找面板(用選擇列表取代彈出列表) EWallpaperPane 壁紙面板 EIndicatorPane 指示器面板(引起用戶注意) EAColumn 顯示小圖案和小字標(biāo)題 EBColumn 顯示大圖標(biāo)和大字標(biāo)題 ECColumn 顯示用戶輸入,與EDColumn配合。EDColumn 顯示附加圖標(biāo),與ECColumn配合。 EStaconTop landscape的狀態(tài)面板與控制面板頂部布局 EStaconBottom landscape的狀態(tài)面板與控制面板底部布局 EStatusPaneBottom landscape的狀態(tài)面板底部布局 EControlPaneBottom landscap

46、e的控制面板底部布局 EControlPaneTop landscape的狀態(tài)面板頂部布局 EStatusPaneTop landscape的控制面板頂部布局 示例:>>> import appuifw >>> appuifw.app.layout(appuifw.EMainPane) (176, 144), (0, 44) >>> 諾基亞N70的主面板大小和位置Form類型Form具有非常大的設(shè)計自由度,更通俗點說,它是一個萬能對話框。 用它可以設(shè)計出獨特的復(fù)合對話框,甚至掙脫標(biāo)準(zhǔn)對話框的束縛,做出個性效果。 Form(fiel

47、ds , flags=0 ) 類 生成Form實例。fields是域描述列表:(label, type, value )其中l(wèi)abel是U nicode字符串,作為標(biāo)題名稱。type是“text“,“number“,“date“,“time“,“combo“,“float“中的一個,分別對應(yīng)著:U nicode字符串、普通數(shù)字、Unix日期浮點數(shù)、Unix時間浮點數(shù)、(choice label ., index) 以及普通浮點數(shù)。 對于“float“,即便設(shè)定了缺省值,通常也不會顯示在UI中。 Form通過各種屬性值來配置對話框。包括域文字信息以及讀取用戶輸入信息。 Form實例含有以下屬性:

48、 flags 屬性標(biāo)記。目前可用的標(biāo)記有: FFormEditModeOnly 設(shè)置Form為可編輯模式。 FFormViewModeOnly 設(shè)置Form為不可編輯模式。 FFormAutoLabelEdit 允許終端用戶編輯Form的標(biāo)題項。 FFormAutoFormEdit 允許終端用戶增加或刪除Form域。 注意,目前這項功能仍處于試驗階段,不支持所有SDK。 FFormDoubleSpaced 生成雙行距布局。輸入域占據(jù)兩行,第一行顯示項目標(biāo)題,第二行用于數(shù)據(jù)處理。 menu 設(shè)置Form菜單項: (title, callback)。 其中title是U nicode字符串,用于顯

49、示菜單項名稱,callback是事件響應(yīng)。 save_hook (shagon注:簡單一句話,就是用來實現(xiàn)多級連鎖對話框。) 生成一個用于接收自變量并返回布爾值的可請求對象,當(dāng)用戶試圖保存當(dāng)前對話框內(nèi)容時就會調(diào)用這個對象。隨之返回的布爾值決定了是否在UI中顯示新的對話框,新對話框是依據(jù)前個對話框內(nèi)容構(gòu)建的。如果返回值是False,那么將恢復(fù)原對話框。 Form 實例支持下列方法: e xecute() 執(zhí)行對話框的生成,使其在UI中可見。 i nsert(index, field_descriptor) 向Form中插入域描述符(先于index)。pop() 從Form中移除域描述符并返回這個

50、值。 length() 統(tǒng)計Form中的域描述符總數(shù)。 下標(biāo) f用于訪問或修改Formf的第i個單元。不過上面已經(jīng)提到FFormAutoFormEdit 仍處于試驗階段,也就是對目前來說,要修改運行中的Form單元結(jié)果可能不那么理想。Text 類型Text是文字處理控件。Text實例含有以下屬性: color 文本顏色。與graphics模塊中的顏色定義相同。focus 控件焦點(布爾值。Ture:恢復(fù)焦點,F(xiàn)alse:丟失焦點)。 通常編輯器控件需要用到導(dǎo)航欄(就像選項卡一樣),所以同時要使用導(dǎo)航面板控件。 font 文本字體。有兩種方法來進(jìn)行設(shè)定: *直接定義字體,形如u“Latin12“

51、。如果手機(jī)不支持這個字體則定義無效。 可以用appuifw.available_fonts來獲取手機(jī)可用字體列表。 示例: t = appuifw.Text() t.font = u“albi17b“ 設(shè)為17號粗斜體 t.font = u“LatinPlain12“設(shè)為拉丁12號常規(guī)字體*定義模式字體。 可選模式有:“annotation“, “title“, “l(fā)egend“, “symbol“, “dense“, “normal“(shagon注:依次為注解、標(biāo)題、圖注、記號、密集、常規(guī)等模式。) 設(shè)定當(dāng)前字體示例: t.font = “title“ 設(shè)為標(biāo)題型字體 校對當(dāng)前字體示例:

52、u nicodeFont = t.font 字體屬性值必須是U nicode字符串,而且代表手機(jī)可用的字體,否則無效。 (shagon注:事實上,第一種方法能夠選擇全部可用字體,而第二種僅能使用其中挑選出的樣式,好處是便于記憶和書寫。) highlight_color 文本加亮顏色。與graphics模塊中的顏色定義相同。style 文本樣式。相關(guān)標(biāo)志屬性在appuifw模塊中被定義。樣式標(biāo)志可以組合使用,通過“”符號連接。 樣式標(biāo)志被劃分為兩類:一種定義文本,另一種定義加亮。下面分別作說明。 文本樣式標(biāo)志: STYLE_BOLD 粗體文字 STYLE_UNDERLINE 帶下劃線文字 STY

53、LE_ITALIC 斜體文字 STYLE_STRIKETHROUGH 帶刪除線文字 加亮樣式標(biāo)志: HIGHLIGHT_STANDARD 標(biāo)準(zhǔn)加亮(shagon注:在文字后面生成一個標(biāo)準(zhǔn)矩形加亮框) HIGHLIGHT_ROUNDED 圓角加亮(shagon注:在文字后面生成一個圓角矩形加亮框) HIGHLIGHT_SHADOW 陰影加亮(shagon注:生成陰影文字,即復(fù)制當(dāng)前文字用加亮色填充,置于斜后方) 對于一串文字只允許使用一種加亮樣式,無論這串文字使用了一種還是多種文字樣式。 示例: t = appuifw.Text() 與以下文字樣式及其組合設(shè)定類似的都有效: t.style =

54、appuifw.STYLE_BOLD t.style = appuifw.STYLE_UNDERLINE t.style = appuifw.STYLE_ITALIC t.style = appuifw.STYLE_STRIKETHROUGH t.style = (appuifw.STYLE_BOLD| appuifw.STYLE_ITALIC| appuifw.STYLE_UNDERLINE) 與以下加亮樣式設(shè)定類似的都有效: t.style = appuifw.HIGHLIGHT_STANDARD t.style = appuifw.HIGHLIGHT_ROUNDED t.style =

55、appuifw.HIGHLIGHT_SHADOW 下面這個加亮樣式組合是無效的,請勿嘗試: t.style = (appuifw.HIGHLIGHT_SHADOW|appuifw.HIGHLIGHT_ROUNDED) Text實例支持下列方法: add(text) 在光標(biāo)處插入文字。 (shagon注:add(U nicode字符串) bind(event_code, callback) 設(shè)置按鍵響應(yīng)(按event_code對應(yīng)鍵就會調(diào)用callback)。鍵位在key_codes模塊中被定義。特別地,bind(event_code, None)用于清除已設(shè)鍵位的事件響應(yīng)。當(dāng)然,事實上按鍵事件

56、最終還是被UI控件所管理的。 clear() 清除所編輯的內(nèi)容。 d elete( pos=0, length=len() ) 從光標(biāo)pos處開始刪除長度為length的文字。 get_pos() 返回當(dāng)前光標(biāo)位置。 len() 返回編輯中的文字長度。 get( pos=0, length=len() ) 檢索從光標(biāo)pos處開始長度為length的文字。 set(text) 置入文字text(U nicode)。 set_pos(cursor_pos) 將光標(biāo)移動到cursor_pos位置。Listbox類型Listbox實例是一個列表。正如在Symbian中常見的那樣,它既可以是單行距布局,也可以是雙行距布局。要使用這樣的圖標(biāo)需要MBM或MIF格式文件。 Listbox(list, callback)類 生成Listbox實例。list是表單項目,callback是選項相應(yīng)的事件響應(yīng)。其中l(wèi)ist可以有如下幾種:單行距列表。形如 it

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論