中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

小學課后服務 Python少兒編程 提高篇:8-初識圖形化 課件 (34張PPT)

資源下載
  1. 二一教育資源

小學課后服務 Python少兒編程 提高篇:8-初識圖形化 課件 (34張PPT)

資源簡介

(共34張PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少兒編程課
初識圖形化
應用程序
我們平時接觸的應用程序大致分三類:
(電腦)桌面應用程序
我們平時接觸的應用程序大致分三類:
WEB應用程序
我們平時接觸的應用程序大致分三類:
(手機)桌面應用程序
這也對應著計算機技術的發展和變遷
今天我們來學習制作一個桌面應用
開發這個小的桌面應用是基于以下目的
掌握Python開發桌面應用程序的技術,可以開發日常學習、生活的小工具

復習并鞏固Python的基礎語法知識

學習一些其他的Python的知識,如第三方模塊的下載和安裝、列表生成式等

先來看以下Python中GUI相關的庫
wxPython
PyQt
tkinter
Python常用GUI圖形用戶界面(Graphical User Interface)庫
單色板
下面我們就是用tkinter制作單色板
1
想使用tkinter,需要先將它導入進來:
4
此時運行,就能看到我們的第一個小窗口了
2
然后創建一個窗口:
from tkinter import *
3
想看到窗口的效果,還需要加上這句:
root.mainloop()
root = Tk()
下面我們設置窗口的標題和大小
1
使用root的title方法,可以設置窗口標題
3
運行效果如下:
2
想設置窗口的大小,需要使用
root的geometry方法:
root.title('我的小窗口')
root.geometry('600x400')
這個方法的參數600x400就表示創建的
窗口寬度是600,高度是400,單位是像素。
除了標題和大小,我們還可以指定它出現在桌面上的位置
1
使用geometry時傳入600x400+300+200做參數
root.geometry('600x400+300+200')
300和200指的是窗口最左上角的點在屏幕上的坐標,也即窗口在屏幕上的位置。其中300指x軸坐標的大小,200指y軸坐標的大小。對于tkinter來說,屏幕左上角是原點,從原點出發,橫向向右是x軸,縱向向下是y軸。
2
接著我們給小窗口上色,想要給窗口上色,就需要先了解做桌面應用的思路
1
2
一般來說,做GUI程序就像畫畫
這里的root窗口就像畫板
3
畫板上鋪上一張畫紙,然后在畫紙上畫
在tkinter中,畫紙的角色由Frame擔當
1
2
定義畫紙
這里的root窗口就是畫板,frame_basic定義好之后還需要將畫紙貼上去,如何來貼呢?
對于畫板來說,畫紙貼在哪是有講究的,不能亂貼。這種如何貼畫紙的規矩,稱為布局。
frame_basic = Frame(width=600, height=400, bg='red')
比如tkinter中有個grid布局,它會將畫板分成幾行幾列的網格狀,你可以選擇將畫紙貼住第幾行第幾列的格子里。
在tkinter中,畫紙的角色由Frame擔當
1
2
指定布局,就相當于將畫紙貼到了畫板上
完整代碼如下
frame_basic.grid(row=0, column=0)
from tkinter import *
root = Tk()
root.title('我的小窗口')
root.geometry('600x400+300+200')
# 定義畫紙,背景顏色為orange橘黃色
frame_basic = Frame(width=600, height=400, bg='orange')
# 將frame_basic放在畫板的第一行第一列,也即第一個單元格
frame_basic.grid(row=0, column=0)
root.mainloop()
3
運行效果如下
四色板
練習
Exercises








基于單色板開發四色板,要求屏幕分成四等份,
每份一種顏色。
這個練習需要注意的就是每塊色塊的大小和布局,也即放到第幾行第幾列去
1
2
代碼如下:
from tkinter import *
root = Tk()
root.title('我的小窗口')
root.geometry('600x400+300+200')
# 定義4個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個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()
實現效果如下
隨機顏色的四色板
下面我們讓每次運行時的色板顏色隨機出現
1
先來了解一種顏色表示的形式
frame1 = Frame(width=600 / 2, height=400 / 2, bg='#F08080')
2
RGB色彩模式
RGB色彩模式是一種顏色標準,目前的顯示器大都采用了這種顏色標準。這里的RGB是紅色Red,綠色Green和藍色Blue的首字母組合。電腦屏幕上的所有顏色,都由這三種色光按照不同的比例混合而成的。
在電腦中,RGB的所謂“多少”是指亮度,并使用整數來表示。通常情況下,RGB各有256級亮度,用數字表示為從0、1、2...直到255。注意雖然數字最高是255,但0也是數值之一,因此共256級。
使用紅綠藍的這256個數值,我們就能“調制”顏色了。比如黑色可以表示為“000”,第一個0表示Red的亮度值,第2個表示綠色的亮度值,第3個表示藍色的亮度值。
思考一下,如果是白色,用什么來表示?
白色就是255255255,但是這樣不方便閱讀,比如2552550就不知道那幾位表示什么顏色了
1
我們需要了解進制的概念
二進制 十進制 十六進制 二進制 十進制 十六進制
0000 0 0 1000 8 8
0001 1 1 1001 9 9
0010 2 2 1010 10 A
0011 3 3 1011 11 B
0100 4 4 1100 12 C
0101 5 5 1101 13 D
0110 6 6 1110 14 E
0111 7 7 1111 15 F
二進制、十進制、十六進制對照表
接下來我們簡單來說說進制之間的轉換
1
十進制轉二進制
除二取余,得到的商再除以二,依次類推直到
商為零或一時為止,然后將每次的余數倒序排列
2
十進制轉十六進制和這類似
15 15對應的十六進制,就是FF,
也就是說,255對應的十六進制是FF
也就是說,使用十六進制我們就可以讓RGB這三個數值的格式標準起來
0-255
0-255
0-255
00-FF
00-FF
00-FF
0000FF
顏色:
十進制:
十六進制:
六位十六進制:
了解了屏幕顏色的組成原理之后,我們就可以產生隨機顏色了。
1
定義方法,用于產生隨機顏色,也即產生六位十六進制字符串
2
然后把Frame的bg參數指定為bg=get_color()就能取得一個隨機顏色
def get_color():
color = ''
colors = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
for i in range(6):
# 隨機0-15內的數,作為下標去取colors中的字符
index = random.randint(0, 15)
# 拼接成6位的字符串
color += colors[index]
return '#' + color
練習
Exercises








根據四色板程序編寫九色板程序,也即窗口平分
為3行3列共9塊,每塊顏色隨機。
多色板
在4色板的基礎上,只要稍加改造這段代碼,就可以做出任意多行任意多列的多色板來。
1
比如想開發個九色板,那定義的Frame的寬和高要除以3
2
當然,這些參數可以配套使用
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)
思考一下:這個過程能不能優化呢?
下面我們就優化下重復的過程,并作出通用性的多色板來
1
首先將9色板的開發過程使用循環替代
2
如果是4行4列、4行3列、n行n列,我們只需要把上面的3給換成變量就行了
for i in range(3):
for j in range(3):
frame = Frame(width=600 / 3, height=400 / 3, bg=get_color())
frame.grid(row=i, column=j)
# 定義行數
row_num = 4
# 定義列數
column_num = 3
# 循環創建Frame,并指定其位置
for i in range(row_num):
for j in range(column_num):
frame = Frame(width=600 / column_num, height=400 / row_num, bg=get_color())
frame.grid(row=i, column=j)
注意程序中Frame的寬度是600除以列數,高度是400除以行數
最后,我們再做一點美化和限制
1
首先是給色塊間添加分割線
2
可以設置窗口不可改變大小,這樣就防止了窗口因拖動而變形
frame.grid(row=i, column=j, padx=1, pady=1)
padx用于設置x軸方向色塊間的間隔,pady用于設置y軸方向上色塊間的間隔,單位都是像素。
# 此時因為添加了分割線,就加大了寬度和高度,當然這個要根據實際情況調整
root.maxsize(width=620, height=420)
root.minsize(width=620, height=420)
這樣,我們不可改變大小的任意行列的多色板就做好了
總結
Summary
tkinter的基本思路,以及Tk、Frame的使用

GridLayout布局的使用

RGB三原色原理及顏色的十六進制表示形式

Thanks!

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 新巴尔虎左旗| 吉木乃县| 瓦房店市| 寿宁县| 诸暨市| 新和县| 荆门市| 凤山县| 琼结县| 于都县| 阜平县| 阿拉善左旗| 维西| 徐水县| 怀来县| 台前县| 浦北县| 大同县| 松潘县| 宁德市| 通辽市| 沾化县| 会东县| 屏东市| 吉安县| 常宁市| 遵义县| 大同市| 石柱| 响水县| 洛阳市| 张家港市| 额济纳旗| 肃南| 台山市| 霞浦县| 射洪县| 吉安县| 宝鸡市| 手游| 铜山县|