Tkinter 提供了 Canvas 組件來實現繪圖。既可在 Canvas 中繪制直線、矩形、橢圓等各種幾何圖形,也可繪制圖片、文字、UI 組件(如 Button)等。
Canvas 允許重新改變這些圖形項(Tkinter 將程序繪制的所有東西統稱為 item)的屬性,比如改變其坐標、外觀等。
示例:
from Tkinter import *
window=Tk()
window.title('My Window')
window.geometry('600x800')
canvas = Canvas(window, bg='grey', height=500, width=500)
line = canvas.create_line(105, 10, 105, 200)
# 畫直線:兩個端點的x,y坐標(x0,y0,x1,y1)
rect = canvas.create_rectangle(200, 10, 200+100, 10+50)
# 畫矩形:左上端點的x,y坐標與延申的寬度高度(x0,y0,x0+寬,y0+高)
arc = canvas.create_arc(10, 10, 200, 200, start=60, extent=300)
# 畫扇形橢圓:整圓的四個頂點:左點x0,上點y0,右點x1,下點y1.從60度開始旋轉300度結束
oval = canvas.create_oval(10, 10, 100, 100, fill='red')
# 畫整圓:整圓的四個頂點:左點x0,上點y0,右點x1,下點y1.fill=''表示無色填充
canvas.pack()
def moveit():
canvas.move(oval, 50, 20)
# 移動oval,按每次(x=50, y=20)步長進行移動
Button(window, text='move oval',command=moveit).pack()
window.mainloop()