《零基礎入門學習Python》第071講:GUI的終極選擇:Tkinter8
雖然我們能用tkinter設計不少東西了,但是不少同學還是感覺對這個界面編程掌控得還不夠多,說白了,就是我們現在還沒辦法隨心所欲的去繪製我們想要的界面,但是不瞞你說,今天的這一節課將會給你的人生乃至人生觀帶來翻天覆地的變化,開個玩笑哈。
我們今天講解Canvas 組件,一個可以讓你任性的組件,一個可以讓你隨心所欲去繪製界面的組件,Canvas 是一個通用的組件,通常用於顯示以及編輯圖形,你可以用它來繪製直線、三角形、矩形、多邊形甚至是繪製其他的組件都可以。在Canvas 上繪製對象,你可以使用 create_xxx() 的方法(xxx 表示對像類型,例如線段line,矩形rectangle,文本text 等)。
舉個例子:
首先,我們創建一個Canvas 對象,叫做w,這個對象來自於root ,設置寬度200,高度100,如果就這樣運行的話,得到的就是一個空白的畫布,背景顏色和窗口的背景顏色是一樣的,所以我們看不到它在哪裡,我們可以通過設置它的background ,設置為white。
我們然後在它的水平方向上創建一根黃線,在中間垂直方向上繪製一條紅色的虛線,然後在中間繪製一個藍色的矩形。
黃色的橫線,起點(0,50),終點(200,50),顏色填充為yellow。
紅色的垂線,起點(100,0),終點(100,100),顏色填充為red,dash 用於繪製虛線。
dash 用法:1.繪製虛線
2.該選項值是一個整數元組,元組中的元素分別代表短線的長度和間隔
3.例如(3, 5)代表3個像素的短線和5個像素的間隔
繪製矩形,左下點(50,25),右上點(150,75),填充顏色為blue

大家要注意的是:我們創建的3 個對象(兩條線,一個矩形),這些對像如果沒有意外的情況,它會一直保留著,直到你去修改它們,它們就會被覆蓋,例如這兩條線,本來都是貫穿整個Canvas 的,但是被矩形覆蓋了,那麼中間被覆蓋的位置就看不到啦。
還有一些方法提供給我們對這些對象(稱之為畫布對象)進行修改,我們可以使用 coords(),itemconfig() 和move() 方法。我們來分別演示一下:

你還可以在Canvas 上面顯示文本,可以使用create_text() 方法。

我們可以看到,我們設置text 的位置為矩形中間,文本默認是居中顯示的,你還可以通過設置anchor 讓它靠邊。
使用Canvas 基本上是無所不能,無所不包的,你要畫什麼圖形都可以,比如說,畫一個圓形或者橢圓形(事實上圓形就是特殊的橢圓形),我們來舉個例子:

橢圓的限制範圍的條件和矩形是一模一樣的,然後得到的橢圓就是完美的貼合這個矩形,你就明白橢圓是怎麼繪製的了。事實上,繪製橢圓是先給定一個限制矩形,然後就用橢圓來填充這個限定矩形。事實上,圓形就是特殊的橢圓,只需要把這個限定矩形改成正方形即可。
然後呢,你可能還想繪製一個多邊形,你可以使用 create_polygon() 方法,現在就來帶大家畫一個五角星,首先,要畫一個五角星,我們需要確定5個角的坐標,高中數學只要不是體育老師教的,都知道,都能夠看得懂下面的原理圖。

我們這裡使用三角函數確定五角星5個角的位置,因為我們知道它的中心到各個點的距離是一樣的。我們就可以得到各個點的坐標。將這5個點連起來就是一個五角星了。繪製一個多邊形,我們使用create_polygon() 方法,就是依次傳入每個點的坐標(ACEBD)
代碼如下:

0 留言:
發佈留言