![軟件開(kāi)發(fā)技術(shù)基礎(chǔ) 第4版 課件 第3章 操作系統(tǒng)及應(yīng)用程序開(kāi)發(fā)_第1頁(yè)](http://file4.renrendoc.com/view14/M03/29/23/wKhkGWcZ5M6AHttgAAC0osBQHZ4012.jpg)
![軟件開(kāi)發(fā)技術(shù)基礎(chǔ) 第4版 課件 第3章 操作系統(tǒng)及應(yīng)用程序開(kāi)發(fā)_第2頁(yè)](http://file4.renrendoc.com/view14/M03/29/23/wKhkGWcZ5M6AHttgAAC0osBQHZ40122.jpg)
![軟件開(kāi)發(fā)技術(shù)基礎(chǔ) 第4版 課件 第3章 操作系統(tǒng)及應(yīng)用程序開(kāi)發(fā)_第3頁(yè)](http://file4.renrendoc.com/view14/M03/29/23/wKhkGWcZ5M6AHttgAAC0osBQHZ40123.jpg)
![軟件開(kāi)發(fā)技術(shù)基礎(chǔ) 第4版 課件 第3章 操作系統(tǒng)及應(yīng)用程序開(kāi)發(fā)_第4頁(yè)](http://file4.renrendoc.com/view14/M03/29/23/wKhkGWcZ5M6AHttgAAC0osBQHZ40124.jpg)
![軟件開(kāi)發(fā)技術(shù)基礎(chǔ) 第4版 課件 第3章 操作系統(tǒng)及應(yīng)用程序開(kāi)發(fā)_第5頁(yè)](http://file4.renrendoc.com/view14/M03/29/23/wKhkGWcZ5M6AHttgAAC0osBQHZ40125.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章操作系統(tǒng)及應(yīng)用程序開(kāi)發(fā)2024西安交通大學(xué)13.1操作系統(tǒng)概述3.1.1操作系統(tǒng)的概念操作系統(tǒng)是為管理計(jì)算機(jī)中的硬件和軟件資源,合理組織計(jì)算機(jī)的工作流程,為用戶提供功能豐富、使用方便的運(yùn)行環(huán)境的一種系統(tǒng)軟件。操作系統(tǒng)的功能包括五大模塊:進(jìn)程管理、存儲(chǔ)管理、文件管理、設(shè)備管理和用戶接口。西安交通大學(xué)23.1.2操作系統(tǒng)的類型單道批處理方式多道程序系統(tǒng)分時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)微機(jī)操作系統(tǒng)分布式操作系統(tǒng)嵌入式操作系統(tǒng)西安交通大學(xué)33.1.3常見(jiàn)操作系統(tǒng)簡(jiǎn)介1.Windows操作系統(tǒng)WindowsNT(Newtechnology)系列操作系統(tǒng)的體系結(jié)構(gòu)西安交通大學(xué)4Windows編程的一些概念句柄消息事件MFC(MicrosoftFoundationClass,微軟基礎(chǔ)類庫(kù))tkinter、pyQT西安交通大學(xué)52.Ubuntu3.Android西安交通大學(xué)63.2操作系統(tǒng)的資源管理3.2.1進(jìn)程管理1.程序的執(zhí)行方式(1)順序執(zhí)行順序性封閉性可再現(xiàn)性(2)并發(fā)執(zhí)行間斷(異步)性失去封閉性失去可再現(xiàn)性西安交通大學(xué)72.進(jìn)程一個(gè)進(jìn)程就是程序的一次執(zhí)行,是操作系統(tǒng)進(jìn)行資源調(diào)度和分配的獨(dú)立單位。(1)進(jìn)程的特點(diǎn)動(dòng)態(tài)性并發(fā)性獨(dú)立性異步性結(jié)構(gòu)性制約性(2)進(jìn)程的狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)等待狀態(tài)西安交通大學(xué)8(3)進(jìn)程的結(jié)構(gòu)1)進(jìn)程描述信息2)進(jìn)程調(diào)度信息3)進(jìn)程控制信息4)處理機(jī)狀態(tài)信息(4)進(jìn)程的調(diào)度1)先來(lái)先服務(wù)2)最短作業(yè)優(yōu)先3)時(shí)間片輪轉(zhuǎn)法4)多級(jí)隊(duì)列5)優(yōu)先級(jí)算法西安交通大學(xué)93.進(jìn)程與程序區(qū)別進(jìn)程是動(dòng)態(tài)的,程序是靜態(tài)的。進(jìn)程是暫時(shí)的,程序是永久的。進(jìn)程與程序的組成不同。進(jìn)程與程序可以相互轉(zhuǎn)化。西安交通大學(xué)103.2.2存儲(chǔ)管理1.存儲(chǔ)管理的主要任務(wù)(1)內(nèi)存空間的分配與釋放(2)內(nèi)存空間的地址變換(3)內(nèi)存空間的分區(qū)保護(hù)(4)內(nèi)存空間的擴(kuò)充2.存儲(chǔ)管理的主要方法(1)單一連續(xù)存儲(chǔ)管理(2)分區(qū)式存儲(chǔ)管理(3)頁(yè)式存儲(chǔ)管理(4)段式存儲(chǔ)管理(5)虛擬存儲(chǔ)管理西安交通大學(xué)113.Windows的存儲(chǔ)管理請(qǐng)求調(diào)頁(yè)簇式的頁(yè)式虛存管理Windows為每個(gè)進(jìn)程分配的是虛擬內(nèi)存空間全局內(nèi)存局部?jī)?nèi)存在Windows操作系統(tǒng)下,存儲(chǔ)器被保護(hù)起來(lái),程序和用戶無(wú)法直接訪問(wèn)西安交通大學(xué)123.2.3設(shè)備管理1.設(shè)備的分類按使用方式:獨(dú)占設(shè)備和共享設(shè)備;按處理速度:慢速設(shè)備和快速設(shè)備;按數(shù)據(jù)組織和存取方式:字符設(shè)備和塊設(shè)備;按通信方式:串行設(shè)備和并行設(shè)備;按應(yīng)用范圍:通用設(shè)備和專用設(shè)備;按隸屬關(guān)系:系統(tǒng)設(shè)備和用戶設(shè)備;按實(shí)體程序:真實(shí)設(shè)備和虛擬設(shè)備西安交通大學(xué)132.設(shè)備的輸入/輸出(Input/Output,I/O)控制方式1)程序直接控制方式。2)中斷控制方式。中斷中斷服務(wù)程序3)DMA(directmemoryaccess,直接存儲(chǔ)器訪問(wèn))控制方式4)通道控制方式。西安交通大學(xué)143.設(shè)備管理的方式設(shè)備分配原則是根據(jù)設(shè)備本身的特性、用戶要求和系統(tǒng)配置情況決定的??偟脑瓌t是:高效、安全、與物理設(shè)備無(wú)關(guān)。設(shè)備分配原則的因素1)I/O設(shè)備的固有屬性2)I/O設(shè)備分配算3)設(shè)備分配中的安全性4)與設(shè)備無(wú)關(guān)性西安交通大學(xué)154.設(shè)備分配的步驟1)根據(jù)進(jìn)程提出的物理設(shè)備名檢索系統(tǒng)設(shè)備表SDT(SystemDeviceTable),從中找到該物理設(shè)備的設(shè)備控制表DCT(DeviceControlTable)。2)根據(jù)DCT中的狀態(tài)信息,了解該設(shè)備是否忙。3)當(dāng)設(shè)備分配給請(qǐng)求I/O的進(jìn)程后,從該設(shè)備的設(shè)備控制表(DCT)中與該設(shè)備相連的控制器表指針一欄可知與此設(shè)備相連的控制器控制表(COCT,ControllerControlTable)。4)檢查該控制器控制表中的狀態(tài)信息來(lái)判斷控制器是否忙。5)通過(guò)控制器控制表中的通道表指針,檢查與此控制器相連的通道的狀態(tài)。西安交通大學(xué)165.設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序是I/O進(jìn)程與設(shè)備控制器之間的通信程序,它接收上層軟件發(fā)來(lái)的抽象I/O要求(如read或write命令)轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,設(shè)置相關(guān)參數(shù),啟動(dòng)設(shè)備并完成輸入/輸出。6.Windows的設(shè)備管理Windows操作系統(tǒng)通過(guò)設(shè)備驅(qū)動(dòng)程序來(lái)完成設(shè)備的啟動(dòng)、操作、數(shù)據(jù)流向控制和設(shè)備的關(guān)閉工作。Windows采用分層驅(qū)動(dòng)程序的思想,只有最底層的硬件設(shè)備驅(qū)動(dòng)程序訪問(wèn)硬件設(shè)備,高層驅(qū)動(dòng)程序都是進(jìn)行高級(jí)I/O請(qǐng)求到低級(jí)I/O請(qǐng)求的轉(zhuǎn)換工作,各層驅(qū)動(dòng)程序間的I/O請(qǐng)求通過(guò)I/O管理器進(jìn)行。西安交通大學(xué)173.2.4文件管理操作系統(tǒng)中與文件管理有關(guān)的程序和所管理的文件稱為文件系統(tǒng)1.文件系統(tǒng)的功能2.文件結(jié)構(gòu)邏輯結(jié)構(gòu)物理結(jié)構(gòu)流式文件記錄式文件3.文件目錄系統(tǒng)中的文件的文件名、文件的物理地址和文件屬性等信息的表格。卷(邏輯盤)、文件夾、子文件夾、文件西安交通大學(xué)184.DOS(DiskOperatingSystem)的文件管理(1)DOS的文件名8.3格式,統(tǒng)配符。(2)DOS的文件目錄樹(shù)形目錄結(jié)構(gòu),32字節(jié)(3)DOS文件的物理結(jié)構(gòu)引導(dǎo)區(qū)(BOOT區(qū))文件分配表區(qū)(FAT區(qū))數(shù)據(jù)區(qū)(DATA區(qū))FAT16西安交通大學(xué)19DOS磁盤數(shù)據(jù)結(jié)構(gòu)
5.Windows的文件管理1)FAT32FAT32的結(jié)構(gòu)和FAT16是一致的。FAT的每個(gè)登記項(xiàng)占4字節(jié)(32位),可以支持更大的分區(qū),單個(gè)文件也可以更大。2)NTFSNTFS分區(qū)由引導(dǎo)區(qū)、主文件表(MFT)和文件區(qū)組成。引導(dǎo)區(qū)包括一個(gè)扇區(qū)的主引導(dǎo)記錄(MasterBootRecord,MBR)和不超過(guò)15個(gè)扇區(qū)的Windows啟動(dòng)管理器。主文件表(MainFileTable,MFT)是保存文件信息的區(qū)域。NTFS所有的數(shù)據(jù)都存儲(chǔ)在文件中,目錄也是文件,甚至引導(dǎo)區(qū)也是一個(gè)文件。容錯(cuò)性、安全性、文件壓縮、磁盤配額、可靠性西安交通大學(xué)203.2.5用戶接口命令接口、程序接口、圖形接口西安交通大學(xué)213.3基于Python的Windows操作系統(tǒng)應(yīng)用程序設(shè)計(jì)3.3.1線程和進(jìn)程1.線程程序設(shè)計(jì)threading模塊(1)調(diào)用Thread類的構(gòu)造函數(shù)創(chuàng)建線程Thread類構(gòu)造函數(shù)__init__(self,group=None,target=None,name=None,args=(),kwargs=None,*,daemon=None)【例3-1】編寫程序,創(chuàng)建三個(gè)線程,模擬三臺(tái)機(jī)器,它們每隔1-3秒的時(shí)間生產(chǎn)1-5件產(chǎn)品。顯示線程名作為“機(jī)器名”。西安交通大學(xué)22西安交通大學(xué)23(2)繼承Thread類創(chuàng)建線程類繼承Thread類,自定義一個(gè)線程類重寫從父類繼承得到的run()方法【例3-2】通過(guò)創(chuàng)建Thread的子類,創(chuàng)建線程,實(shí)現(xiàn)例3-1的功能。西安交通大學(xué)24西安交通大學(xué)25(3)守護(hù)線程所謂守護(hù)線程(或后臺(tái)線程),就是為其他線程提供服務(wù)的線程,其特點(diǎn)是如果被服務(wù)的線程不結(jié)束,則守護(hù)線程不能結(jié)束,當(dāng)被服務(wù)的線程結(jié)束時(shí),守護(hù)線程結(jié)束。守護(hù)線程也是線程,可以象前面一樣創(chuàng)建,在啟動(dòng)前將其daemon屬性設(shè)置為True再啟動(dòng)【例3-3】在例3-1的基礎(chǔ)上,創(chuàng)建一個(gè)守護(hù)線程,模擬一個(gè)監(jiān)控機(jī)構(gòu),它每隔一個(gè)隨機(jī)時(shí)間顯示“Operatingnormally”,其他機(jī)器停止運(yùn)行,監(jiān)控也停止。西安交通大學(xué)26西安交通大學(xué)27(4)基于隊(duì)列的線程同步隊(duì)列同步是Python中線程同步的一種方法,線程產(chǎn)生的資源放入隊(duì)列,消費(fèi)的資源從隊(duì)列中取出,隊(duì)列機(jī)制保證隊(duì)列滿時(shí)和隊(duì)列空時(shí)線程等待?!纠?-4】編程模擬3個(gè)生產(chǎn)者,它們每個(gè)1-2秒生產(chǎn)一件產(chǎn)品;5個(gè)消費(fèi)者,每個(gè)1-3秒消費(fèi)一件產(chǎn)品。庫(kù)房大小為10。庫(kù)房滿時(shí)不再生產(chǎn),庫(kù)房空時(shí)不能消費(fèi)。西安交通大學(xué)28西安交通大學(xué)29西安交通大學(xué)302.進(jìn)程程序設(shè)計(jì)multiprocessing模塊(1)通過(guò)Process實(shí)例創(chuàng)建進(jìn)程Process類的構(gòu)造函數(shù)__init__(self,group=None,target=None,name=None,args=(),kwargs{})【例3-5】啟動(dòng)兩個(gè)進(jìn)程,模擬兩臺(tái)同時(shí)運(yùn)行的機(jī)器。每臺(tái)機(jī)器每隔1-5秒的隨機(jī)時(shí)間隨機(jī)生產(chǎn)1-3件產(chǎn)品。西安交通大學(xué)31西安交通大學(xué)32(2)通過(guò)Process的子類創(chuàng)建進(jìn)程【例3-6】通過(guò)創(chuàng)建Process的子類創(chuàng)建例3-5中的進(jìn)程。定義Process的派生類,重寫run()方法西安交通大學(xué)33西安交通大學(xué)34(3)進(jìn)程間通信multiprocessing提供的進(jìn)程間通信方法之一是隊(duì)列。通過(guò)multiProcessing中的Queue類創(chuàng)建隊(duì)列對(duì)象,共享信息的進(jìn)程可以在隊(duì)列中插入和取出數(shù)據(jù)?!纠?-7】使用進(jìn)程的隊(duì)列實(shí)現(xiàn)生產(chǎn)和消費(fèi)模型的模擬。西安交通大學(xué)35西安交通大學(xué)36西安交通大學(xué)373.進(jìn)程池和線程池所謂線程池(進(jìn)程池)就是預(yù)先創(chuàng)建好若干個(gè)線程(進(jìn)程),一般與CPU的核心數(shù)量相同,然后按需分配給需要處理的任務(wù),任務(wù)結(jié)束并不關(guān)閉,而是將線程(進(jìn)程)放回線程池(進(jìn)程池)中等待任務(wù)。concurent.futures模塊Executor類,使用其子類ThreadPoolExecutor和ProcessPoolExecutor創(chuàng)建線程池任務(wù)執(zhí)行器和進(jìn)程池任務(wù)執(zhí)行器。其方法有submit(fn,*args,**kwargs)map(func,*iterables,timeout=None,chunksize=1)shutdown(wait=True)西安交通大學(xué)38Future類,表示執(zhí)行的任務(wù),其實(shí)例由Executor.submit()創(chuàng)建,主要方法:cancel()
running()done()result(timeout=None)add_done_callbaxck(fn)【例3-8】使用進(jìn)程池尋找[10000000,10000200)之間的素?cái)?shù)。西安交通大學(xué)39西安交通大學(xué)403.3.2內(nèi)存管理和內(nèi)存文件1.Python內(nèi)存管理Python采用內(nèi)存池機(jī)制。垃圾回收機(jī)制2.字符串、整數(shù)和浮點(diǎn)數(shù)與字節(jié)序列的轉(zhuǎn)換字符串和字節(jié)序列的相互轉(zhuǎn)換str.encode(encoding='utf-8')
bytes(str,encoding='utf-8')
s=b'str'bytestr.decode(encoding='utf-8')整數(shù)和字節(jié)序列的相互轉(zhuǎn)換a.to_bytes(k,byteorder='big',signed='False')int.from_bytes(bytes,byteorder='big',signed='False')西安交通大學(xué)41浮點(diǎn)數(shù)和字節(jié)序列的相互轉(zhuǎn)換內(nèi)置模塊struct中的pack和unpack函數(shù),它們將數(shù)值數(shù)據(jù)轉(zhuǎn)換為字節(jié)序列。struct.pack(fmt,v1,v2,…)struct.unpack(fmt,bugger)西安交通大學(xué)423.內(nèi)存文件StringIO類用于文本流,BytesIO類用于二進(jìn)制流,它們?cè)趇o模塊中。mf=io.StringIO()#返回內(nèi)存文本文件對(duì)象bf=io.BytesIO()#返回內(nèi)存二進(jìn)制文件對(duì)象西安交通大學(xué)431)StringIO類。使用StringIO類創(chuàng)建文本內(nèi)存文件使用read()、readline()、readlines()、getvalue()方法讀取數(shù)據(jù)使用write()、writelines()寫入數(shù)據(jù)?!纠?-9】編寫程序,創(chuàng)建內(nèi)存文本文件,使用各種寫入語(yǔ)句將下面的詩(shī)寫入文件,使用各種讀取語(yǔ)句讀出并顯示。東欄梨花蘇軾〔宋代〕梨花淡白柳深青,柳絮飛時(shí)花滿城。惆悵東欄一株雪,人生看得幾清明。西安交通大學(xué)442)BytesIO類。創(chuàng)建二進(jìn)制內(nèi)存文件,常用方法:write(b)
read(size=-1)
readline(size=-1)
readlines(hint=-1)
getvalue()
seek()close()西安交通大學(xué)45【例3-10】編寫程序,使用io.BytesIO類創(chuàng)建二進(jìn)制內(nèi)存文件,將整數(shù)、實(shí)數(shù)、字符串?dāng)?shù)據(jù)寫入、讀出并顯示出來(lái)。西安交通大學(xué)463.內(nèi)存映像文件Python使用mmap模塊的mmap類實(shí)現(xiàn)內(nèi)存映像的操作,其構(gòu)造格式為:classmmap.mmap(fileno,length,tagname=None,access[,offset=0])使用read([n])、readline()、write()、seek()、find()、move()、close()等方法讀若干字節(jié),讀一行,寫若干字節(jié),定位文件指針,查找、移動(dòng)數(shù)據(jù),關(guān)閉映像文件。【例3-11】使用內(nèi)存映像文件對(duì)文件進(jìn)行讀寫。編寫程序,先使用常規(guī)方法寫一個(gè)文本文件,內(nèi)容如下:shaanxihistorymuseum陜西考古博物館關(guān)閉后再使用open()打開(kāi),使用mmap.mmap建立內(nèi)存映像文件,按行讀取其中的內(nèi)容,解碼后顯示。然后通過(guò)下標(biāo)訪問(wèn)修改第1行每個(gè)單詞的首字母大寫,將第2行改為“陜西歷史博物館”。西安交通大學(xué)473.3.3文件管理相關(guān)的模塊osos.pathglobshutilsubprocess西安交通大學(xué)483.3.4動(dòng)態(tài)鏈接庫(kù)和WindowsAPIctypes使用cdll和windll兩個(gè)函數(shù)加載動(dòng)態(tài)鏈接庫(kù)。cdll用于cdecl調(diào)用約定,windll用于stdcall調(diào)用約定。函數(shù)的調(diào)用約定主要指參數(shù)的傳遞方式和清理?xiàng)5姆绞健S捎趧?dòng)態(tài)鏈接庫(kù)函數(shù)的參數(shù)類型與Python的參數(shù)類型不一致,所以調(diào)用動(dòng)態(tài)鏈接庫(kù)函數(shù)時(shí)通常需要將Python類型轉(zhuǎn)換為函數(shù)需要的類型或創(chuàng)建函數(shù)需要的類型。西安交通大學(xué)49西安交通大學(xué)50
1)簡(jiǎn)單數(shù)據(jù)類型簡(jiǎn)單類型的參數(shù),直接使用ctypes中的類型構(gòu)造函數(shù)創(chuàng)建或初始化對(duì)象,使用對(duì)象的value屬性為對(duì)象賦值或獲得對(duì)象的值。西安交通大學(xué)51
2)數(shù)組通過(guò)ctypes簡(jiǎn)單類型的類型名乘以一個(gè)整數(shù)創(chuàng)建固定長(zhǎng)度的數(shù)組??梢栽趧?chuàng)建數(shù)組時(shí)初始化。對(duì)字符數(shù)組,可以用屬性value賦值和輸出。西安交通大學(xué)523)指針ctypes.pointer(obj)函數(shù)創(chuàng)建ctypes對(duì)象的指針實(shí)例,它的參數(shù)是一個(gè)對(duì)象;POINTER(type)創(chuàng)建指針類型,它的參數(shù)是一個(gè)類型。西安交通大學(xué)534)創(chuàng)建內(nèi)存區(qū)域ctypes.create_string_butter(init_or_size,size=None)創(chuàng)建一塊可變的字符緩沖區(qū),返回值是c_char類型的數(shù)組西安交通大學(xué)54
5)結(jié)構(gòu)體結(jié)構(gòu)體是由一組數(shù)據(jù)組合而成的整體,常表示現(xiàn)實(shí)中的一個(gè)對(duì)象的一組屬性的值,如('張三','男',20,172)C語(yǔ)言的結(jié)構(gòu)體的定義格式西安交通大學(xué)55實(shí)現(xiàn)ctypes類型的結(jié)構(gòu)體,需要基于ctypes中的父類Structure寫一個(gè)派生類,子類必須定義_fields_屬性,,其值是兩元組的列表,每個(gè)兩元組包含一個(gè)名字域和一個(gè)類型域,它們是字段的名字和類型。西安交通大學(xué)562.調(diào)用C語(yǔ)言編寫的動(dòng)態(tài)鏈接庫(kù)【例3-13】用C語(yǔ)言編寫動(dòng)態(tài)鏈接庫(kù)文件,其中有4個(gè)函數(shù),分別實(shí)現(xiàn)兩個(gè)整數(shù)的和、交換兩個(gè)整型變量的值、對(duì)整數(shù)數(shù)組排序、復(fù)制字符串等功能,其C語(yǔ)言的格式如下:intmyadd(inta,intb); voidmyswap(int*a,int*b); voidmysort(inta[],intn); char*mystrcpy(char*s1,char*s2); 將其編譯為動(dòng)態(tài)鏈接庫(kù),在Python中加載動(dòng)態(tài)鏈接庫(kù),調(diào)用函數(shù)驗(yàn)證其功能。本例創(chuàng)建cdecl調(diào)用約定的庫(kù)函數(shù),使用cdll加載器的LoadLibrary(name)方法加載動(dòng)態(tài)鏈接庫(kù)西安交通大學(xué)57①編寫動(dòng)態(tài)鏈接庫(kù)文件。②編譯C語(yǔ)言程序,生成動(dòng)態(tài)鏈接庫(kù)文件。③編寫Python程序。西安交通大學(xué)583.Windows下調(diào)用操作系統(tǒng)的API函數(shù)Windows操作系統(tǒng)的API一般以DLL的形式放在安裝目錄的System32文件夾中,擴(kuò)展名名為.dll,例如kernel32.dllWindowsAPI使用stdcall調(diào)用約定,在Python中使用windll加載器的LoadLibrary()方法加載
【例3-14】編寫Python程序,通過(guò)WindowsAPI的調(diào)用,(1)獲取計(jì)算機(jī)的名稱;(2)獲取E盤的磁盤空間大小、空閑空間和用戶可用空間大小等信息;(3)獲取內(nèi)存的大小和空閑內(nèi)存的大小。西安交通大學(xué)59西安交通大學(xué)60西安交通大學(xué)613.3.5圖形界面1.主窗口內(nèi)置模塊tkinter【例3-15】編寫窗口程序,窗口大小300X200,在屏幕(100,10)位置顯示該窗口,窗口標(biāo)題“tkinterPythonGUI應(yīng)用程序”。西安交通大學(xué)622.布局西安交通大學(xué)63(1)pack方式【例3-16】創(chuàng)建窗口,在窗口中顯示四個(gè)按鈕,按鈕文本依次為青龍、白虎、朱雀、玄武。(2)grid布局【例3-17】編寫GUI程序,在窗口中顯示如下形式的按鈕。西安交通大學(xué)64(3)place布局place布局直接設(shè)定組件的位置。其常用選項(xiàng)有:x,設(shè)定該控件的水平偏移位置,單位為像素。y,設(shè)定該控件的垂直偏移位置,單位為像素。西安交通大學(xué)653.事件處理(1)事件表示鼠標(biāo)事件包括:<Button-1>表示按下鼠標(biāo)左鍵。<Double-Button-1>表示雙擊鼠標(biāo)左鍵。<ButtonRelease-n>,釋放鼠標(biāo)按鈕。<Double-Button-n>,雙擊鼠標(biāo)按鈕。<Motion>,移動(dòng)鼠標(biāo)。<Bn-Motion>,按鈕鼠標(biāo)按鈕,并移動(dòng)鼠標(biāo)。<Enter>,鼠標(biāo)進(jìn)入。<Leave>,鼠標(biāo)離開(kāi)。<MouseWheel>,鼠標(biāo)滾輪滾動(dòng)。西安交通大學(xué)66鍵盤事件包括:<KeyPress-key>或<Key-key>或<key>,特定鍵按下,其中key為某按鍵,如w、W等。<KeyRelease-key>特定鍵松開(kāi)。窗口事件主要包括:<Configure>,改變窗口的位置和
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡(jiǎn)短辭職申請(qǐng)書(shū)
- 2025年微型探針型壓力變送器項(xiàng)目可行性研究報(bào)告
- 民事仲裁申請(qǐng)書(shū)
- 2025年分體座便器項(xiàng)目可行性研究報(bào)告
- 2025至2030年中國(guó)折疊式貨車數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年馬鈴薯種子項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年霓虹塑柄螺釘旋具項(xiàng)目投資價(jià)值分析報(bào)告
- 汽車銷售居間服務(wù)協(xié)議
- 營(yíng)運(yùn)證申請(qǐng)書(shū)
- 2025至2030年硬盤錄像轉(zhuǎn)換器項(xiàng)目投資價(jià)值分析報(bào)告
- DBJ∕T 15-129-2017 集中空調(diào)制冷機(jī)房系統(tǒng)能效監(jiān)測(cè)及評(píng)價(jià)標(biāo)準(zhǔn)
- 閩教版(2020版)六年級(jí)下冊(cè)信息技術(shù)整冊(cè)教案
- 物業(yè)管理應(yīng)急預(yù)案工作流程圖
- (高清正版)T_CAGHP 003—2018抗滑樁治理工程設(shè)計(jì)規(guī)范 (試行)
- 裝飾裝修工程施工合理化建議和降低成本措施提要:完整
- 畢業(yè)論文論財(cái)務(wù)管理是企業(yè)管理的核心
- 清潔化施工無(wú)土化安裝施工方案
- 物業(yè)小區(qū)常規(guī)保潔工作程序
- 食管癌化療臨床路徑(最全版)
- 失業(yè)保險(xiǎn)知識(shí)PPT課件
- 急危重癥患者優(yōu)先處置制度
評(píng)論
0/150
提交評(píng)論