Tkinter的Canvas组件
一、簡介
Canvas組件,是一個可以繪制界面的組件,
Canvas組件是通用的組件,通常用來顯示或編輯圖形,可以用來繪制直線、圓形、多邊形,甚至是繪制其他組件
二、用Canvas繪制簡單的直線與矩形
from tkinter import *
root = Tk()
w = Canvas(root, width=200, height=100)
w.pack()
w.create_line(0, 50, 200, 50, fill="yellow")
w.create_line(100, 0, 100, 100, fill="red", dash=(4, 4))
w.create_rectangle(50, 25, 150, 75, fill="blue")
mainloop()
運行:
三、刪除Canvas上的對象
添加到Canvas上對象會一直保留著,可以使用coords()、itemconfig()和move()方法來移動畫布上的對象,或者使用delete()方法來刪除
?
from tkinter import *
root = Tk()
w = Canvas(root, width=200, height=100)
w.pack()
line1 = w.create_line(0, 50, 200, 50, fill="yellow")
line2 = w.create_line(100, 0, 100, 100, fill="red", dash=(4, 4))
rect1 = w.create_rectangle(50, 25, 150, 75, fill="blue")
w.coords(line1, 0, 25, 200, 25)
w.itemconfig(rect1, fill="red")
w.delete(line2)
Button(root, text="刪除全部", command=(lambda x=ALL:w.delete(x))).pack()
mainloop()
運行:
四、在Canvas上顯示文本
from tkinter import *
root = Tk()
w = Canvas(root, width=200, height=100)
w.pack()
w.create_line(0, 0, 200, 100, fill="green", width=3)
w.create_line(200, 0, 0, 100, fill="green", width=3)
w.create_rectangle(40, 20, 160, 80, fill="green")
w.create_rectangle(65, 35, 135, 65, fill="yellow")
w.create_text(100, 50, text="badao")
mainloop()
運行:
五、Canvas繪制橢圓與圓形
使用create_oval()方法繪制橢圓形或圓形,參數是指定一個限定矩形,Tkinter會自動在這個矩形內繪制一個橢圓
from tkinter import *
root = Tk()
w = Canvas(root, width=200, height=100)
w.pack()
w.create_rectangle(40, 20, 160, 80, dash=(4, 4))
w.create_oval(40, 20, 160, 80, fill="pink")
w.create_text(100, 50, text="badao")
mainloop()
運行:
繪制圓形,就是修改坐標參數,將設定矩形設置為正方形
w.create_oval(70, 20, 130, 80, fill="pink")
六、Canvas繪制五角星
想繪制多邊形,可以使用create_polygon()方法,具體怎樣確定五個角的坐標,可以自行研究,比較復雜,在這只給出現成的源碼
from tkinter import *
import math as m
root = Tk()
w = Canvas(root, width=200, height=100, background="red")
w.pack()
center_x = 100
center_y = 50
r = 50
points = [
??? # 左上點
??? center_x - int(r * m.sin(2 * m.pi / 5)),
??? center_y - int(r * m.cos(2 * m.pi / 5)),
??? # 右上點
??? center_x + int(r * m.sin(2 * m.pi / 5)),
??? center_y - int(r * m.cos(2 * m.pi / 5)),
??? # 左下點
??? center_x - int(r * m.sin(m.pi / 5)),
??? center_y + int(r * m.cos(m.pi / 5)),
??? # 頂點
??? center_x,
??? center_y - r,
??? # 右下點
??? center_x + int(r * m.sin(m.pi / 5)),
??? center_y + int(r * m.cos(m.pi / 5))
??? ]
w.create_polygon(points, outline="green", fill="yellow")
mainloop()
運行:
?
?
?
總結
以上是生活随笔為你收集整理的Tkinter的Canvas组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tkinter的Text组件
- 下一篇: 用Tkinter的Cancas实现一个写