版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Loremipsumdolorsitamet,consectetueradipiscingelit.Aeneancommodoligulaegetdolor.Cumsociisnatoquepenatibusetmagnisdisparturientmontes,nasceturridiculusmus.少兒編程課初識圖形化應(yīng)用程序我們平時(shí)接觸的應(yīng)用程序大致分三類:(電腦)桌面應(yīng)用程序我們平時(shí)接觸的應(yīng)用程序大致分三類:WEB應(yīng)用程序我們平時(shí)接觸的應(yīng)用程序大致分三類:(手機(jī))桌面應(yīng)用程序這也對應(yīng)著計(jì)算機(jī)技術(shù)的發(fā)展和變遷桌面時(shí)代互聯(lián)網(wǎng)時(shí)代移動互聯(lián)網(wǎng)時(shí)代萬物互聯(lián)時(shí)代今天我們來學(xué)習(xí)制作一個(gè)桌面應(yīng)用開發(fā)這個(gè)小的桌面應(yīng)用是基于以下目的掌握Python開發(fā)桌面應(yīng)用程序的技術(shù),可以開發(fā)日常學(xué)習(xí)、生活的小工具√復(fù)習(xí)并鞏固Python的基礎(chǔ)語法知識√學(xué)習(xí)一些其他的Python的知識,如第三方模塊的下載和安裝、列表生成式等√先來看以下Python中GUI相關(guān)的庫wxPythonPyQttkinterPython常用GUI圖形用戶界面(GraphicalUserInterface)庫單色板下面我們就是用tkinter制作單色板1想使用tkinter,需要先將它導(dǎo)入進(jìn)來:4此時(shí)運(yùn)行,就能看到我們的第一個(gè)小窗口了2然后創(chuàng)建一個(gè)窗口:fromtkinterimport*3想看到窗口的效果,還需要加上這句:root.mainloop()root=Tk()下面我們設(shè)置窗口的標(biāo)題和大小1使用root的title方法,可以設(shè)置窗口標(biāo)題3運(yùn)行效果如下:2想設(shè)置窗口的大小,需要使用root的geometry方法:root.title('我的小窗口')root.geometry('600x400')這個(gè)方法的參數(shù)600x400就表示創(chuàng)建的窗口寬度是600,高度是400,單位是像素。除了標(biāo)題和大小,我們還可以指定它出現(xiàn)在桌面上的位置1使用geometry時(shí)傳入600x400+300+200做參數(shù)root.geometry('600x400+300+200')300和200指的是窗口最左上角的點(diǎn)在屏幕上的坐標(biāo),也即窗口在屏幕上的位置。其中300指x軸坐標(biāo)的大小,200指y軸坐標(biāo)的大小。對于tkinter來說,屏幕左上角是原點(diǎn),從原點(diǎn)出發(fā),橫向向右是x軸,縱向向下是y軸。2接著我們給小窗口上色,想要給窗口上色,就需要先了解做桌面應(yīng)用的思路12一般來說,做GUI程序就像畫畫這里的root窗口就像畫板3畫板上鋪上一張畫紙,然后在畫紙上畫在tkinter中,畫紙的角色由Frame擔(dān)當(dāng)12定義畫紙這里的root窗口就是畫板,frame_basic定義好之后還需要將畫紙貼上去,如何來貼呢?對于畫板來說,畫紙貼在哪是有講究的,不能亂貼。這種如何貼畫紙的規(guī)矩,稱為布局。frame_basic=Frame(width=600,height=400,bg='red')比如tkinter中有個(gè)grid布局,它會將畫板分成幾行幾列的網(wǎng)格狀,你可以選擇將畫紙貼住第幾行第幾列的格子里。在tkinter中,畫紙的角色由Frame擔(dān)當(dāng)12指定布局,就相當(dāng)于將畫紙貼到了畫板上完整代碼如下frame_basic.grid(row=0,column=0)fromtkinterimport*
root=Tk()
root.title('我的小窗口')
root.geometry('600x400+300+200')
#定義畫紙,背景顏色為orange橘黃色
frame_basic=Frame(width=600,height=400,bg='orange')
#將frame_basic放在畫板的第一行第一列,也即第一個(gè)單元格
frame_basic.grid(row=0,column=0)
root.mainloop()3運(yùn)行效果如下四色板練習(xí)Exercises密封線內(nèi)不準(zhǔn)答題基于單色板開發(fā)四色板,要求屏幕分成四等份,每份一種顏色。這個(gè)練習(xí)需要注意的就是每塊色塊的大小和布局,也即放到第幾行第幾列去12代碼如下:fromtkinterimport*
root=Tk()
root.title('我的小窗口')
root.geometry('600x400+300+200')
#定義4個(gè)Frame,指定4種不同的背景顏色
#600/2表示600除以2,作為定義的Frame的寬度
frame1=Frame(width=600/2,height=400/2,bg='orange')
frame2=Frame(width=600/2,height=400/2,bg='green')
frame3=Frame(width=600/2,height=400/2,bg='pink')
frame4=Frame(width=600/2,height=400/2,bg='white')
#將4個(gè)Frame依次放入指定位置
frame1.grid(row=0,column=0)
frame2.grid(row=0,column=1)
frame3.grid(row=1,column=0)
frame4.grid(row=1,column=1)
root.mainloop()實(shí)現(xiàn)效果如下隨機(jī)顏色的四色板下面我們讓每次運(yùn)行時(shí)的色板顏色隨機(jī)出現(xiàn)1先來了解一種顏色表示的形式frame1=Frame(width=600/2,height=400/2,bg='#F08080')2RGB色彩模式RGB色彩模式是一種顏色標(biāo)準(zhǔn),目前的顯示器大都采用了這種顏色標(biāo)準(zhǔn)。這里的RGB是紅色Red,綠色Green和藍(lán)色Blue的首字母組合。電腦屏幕上的所有顏色,都由這三種色光按照不同的比例混合而成的。在電腦中,RGB的所謂“多少”是指亮度,并使用整數(shù)來表示。通常情況下,RGB各有256級亮度,用數(shù)字表示為從0、1、2...直到255。注意雖然數(shù)字最高是255,但0也是數(shù)值之一,因此共256級。使用紅綠藍(lán)的這256個(gè)數(shù)值,我們就能“調(diào)制”顏色了。比如黑色可以表示為“000”,第一個(gè)0表示Red的亮度值,第2個(gè)表示綠色的亮度值,第3個(gè)表示藍(lán)色的亮度值。思考一下,如果是白色,用什么來表示?白色就是255255255,但是這樣不方便閱讀,比如2552550就不知道那幾位表示什么顏色了1我們需要了解進(jìn)制的概念二進(jìn)制十進(jìn)制十六進(jìn)制二進(jìn)制十進(jìn)制十六進(jìn)制000000100088000111100199001022101010A001133101111B010044110012C010155110113D011066111014E011177111115F二進(jìn)制、十進(jìn)制、十六進(jìn)制對照表接下來我們簡單來說說進(jìn)制之間的轉(zhuǎn)換1十進(jìn)制轉(zhuǎn)二進(jìn)制除二取余,得到的商再除以二,依次類推直到商為零或一時(shí)為止,然后將每次的余數(shù)倒序排列2十進(jìn)制轉(zhuǎn)十六進(jìn)制和這類似1515對應(yīng)的十六進(jìn)制,就是FF,也就是說,255對應(yīng)的十六進(jìn)制是FF也就是說,使用十六進(jìn)制我們就可以讓RGB這三個(gè)數(shù)值的格式標(biāo)準(zhǔn)起來0-2550-2550-25500-FF00-FF00-FF0000FF顏色:十進(jìn)制:十六進(jìn)制:六位十六進(jìn)制:了解了屏幕顏色的組成原理之后,我們就可以產(chǎn)生隨機(jī)顏色了。1定義方法,用于產(chǎn)生隨機(jī)顏色,也即產(chǎn)生六位十六進(jìn)制字符串2然后把Frame的bg參數(shù)指定為bg=get_color()就能取得一個(gè)隨機(jī)顏色defget_color():
color=''
colors=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
foriinrange(6):
#隨機(jī)0-15內(nèi)的數(shù),作為下標(biāo)去取colors中的字符
index=random.randint(0,15)
#拼接成6位的字符串
color+=colors[index]
return'#'+color練習(xí)Exercises密封線內(nèi)不準(zhǔn)答題根據(jù)四色板程序編寫九色板程序,也即窗口平分為3行3列共9塊,每塊顏色隨機(jī)。多色板在4色板的基礎(chǔ)上,只要稍加改造這段代碼,就可以做出任意多行任意多列的多色板來。1比如想開發(fā)個(gè)九色板,那定義的Frame的寬和高要除以32當(dāng)然,這些參數(shù)可以配套使用frame1=Frame(width=600/3,height=400/3,bg=get_color())
……#定義其他Frame,此處省略frame1.grid(row=0,column=0)
frame2.grid(row=0,column=1)
frame3.grid(row=0,column=2)
frame4.grid(row=1,column=0)
frame5.grid(row=1,column=1)
frame6.grid(row=1,column=2)
frame7.grid(row=2,column=0)
frame8.grid(row=2,column=1)
frame9.grid(row=2,column=2)思考一下:這個(gè)過程能不能優(yōu)化呢?下面我們就優(yōu)化下重復(fù)的過程,并作出通用性的多色板來1首先將9色板的開發(fā)過程使用循環(huán)替代2如果是4行4列、4行3列、n行n列,我們只需要把上面的3給換成變量就行了foriinrange(3):
forjinrange(3):
frame=Frame(width=600/3,height=400/3,bg=get_color())
frame.grid(row=i,column=j)#定義行數(shù)
row_num=4
#定義列數(shù)
column_num=3
#循環(huán)創(chuàng)建Frame,并指定其位置
foriinrange(row_num):
forjinrange(column_num):
frame=Frame(width=600/column_num,height=400/row_num,bg=get_color())
frame.grid(row=i,column=j)注意程序中Frame的寬度是600除以列數(shù),高度是400除以行數(shù)最后,我們再做一點(diǎn)美化和限制1首先是給色塊間添加分割線2可以設(shè)置窗口不可改變大小,這樣就防止了窗口因拖動而變形frame.grid(row=i,column=j,padx=1,pady=1)padx用于設(shè)置x軸方
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 船舶泵機(jī)租賃合同
- 醫(yī)療創(chuàng)新項(xiàng)目管理流程
- 智能機(jī)場智能化施工合同
- 住院期間患者離院管理
- 建筑綠化安全合同協(xié)議書
- 醫(yī)保業(yè)務(wù)數(shù)據(jù)
- 植物園水電設(shè)施施工協(xié)議
- 電力工程皮卡租賃協(xié)議
- 醫(yī)療器械招標(biāo)評分索引表模板
- 神經(jīng)外科護(hù)理觀察典型案例
- 2024年保育員(中級)考試題庫(含答案)
- 廣東開放大學(xué)2024秋《形勢與政策(專)》形成性考核參考答案
- 九年級語文上冊其中知識點(diǎn)復(fù)習(xí)
- 2024年江蘇省泰州市保安員理論考試題庫及答案(完整)
- 糖尿病酮癥酸中毒
- 人教版(2024新版)七年級上冊數(shù)學(xué)期中模擬試卷(無答案)
- 企業(yè)法律合規(guī)與內(nèi)部審計(jì)制度
- 2024年應(yīng)急指示燈具:消防應(yīng)急燈合作協(xié)議書
- 《喜迎建隊(duì)日 爭做好少年》主題班會教案3篇
- 2024-2025學(xué)年魯教版(五四制)八年級數(shù)學(xué)上冊期中測試題
- 湖北省武漢市部分學(xué)校2022-2023學(xué)年高一上學(xué)期期中聯(lián)考英語試卷
評論
0/150
提交評論