note :本文代碼執(zhí)行環(huán)境:win10,PyCharm/jupyter notebook,tkinter,Python3
Tkinter教程之Canvas篇
提供可以用來進行繪圖的Container,支持基本的幾何元素,使用Canvas進行繪圖時,所有的操作都是通過Canvas,不是通過它的元素
元素的表示可以使用handle或tag。
1.第一個Canvas程序
# 指定畫布的顏色為白色
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為黑色
cv = Canvas(root,bg = 'black
')
cv.pack()
root.mainloop()
# 為明顯起見,將背景色設(shè)置為黑色,用以區(qū)別root
canvas窗口
2.創(chuàng)建一個item
# 創(chuàng)建一個矩形,指定畫布的顏色為白色
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
# 創(chuàng)建一個矩形,坐標為(10,10,110,110)
cv.create_rectangle(10,10,110,110)
cv.pack()
root.mainloop()
# 為明顯起見,將背景色設(shè)置為白色,用以區(qū)別root
創(chuàng)建item
3.指定item的填充色,邊框顏色,邊框?qū)挾?/h2>
# 創(chuàng)建一個矩形,指定畫布的背景色為白色
# 使用屬性fill設(shè)置它的填充顏色
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
cv.create_rectangle(10,10,110,110,fill = 'red',outline = 'green')
cv.pack()
root.mainloop()
# 指定矩形的填充色為紅色
item屬性
6.畫虛線
# 指定畫布的背景色為白色
# 使用屬性dash,這個值只能為奇數(shù)
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
cv.create_rectangle(10,10,110,110,
outline = 'red',
dash = 10,
fill = 'green')
cv.pack()
root.mainloop()
# 指定矩形的邊框顏色為紅色,畫虛線
虛線框
7.使用畫刷填充
# 指定畫布的背景色為白色
# 使用屬性stipple
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
cv.create_rectangle(10,10,110,110,
outline = 'red',
stipple = 'gray12',
fill = 'green')
cv.pack()
root.mainloop()
# 指定矩形的邊框顏色為紅色,自定義畫刷
畫刷填充
8.修改item的坐標
# 指定畫布的背景色為白色
# 使用Canvas的方法來重新設(shè)置item的坐標
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
rt = cv.create_rectangle(10,10,110,110,
outline = 'red',
stipple = 'gray12',
fill = 'green')
cv.pack()
# 重新設(shè)置rt的坐標(相當(dāng)于移動一個item)
cv.coords(rt,(110,110,110,110))
root.mainloop()
# 動態(tài)修改item的坐標
item坐標設(shè)置
# 創(chuàng)建一個矩形,指定畫布的背景色為白色
# 使用屬性fill設(shè)置它的填充顏色
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
cv.create_rectangle(10,10,110,110,fill = 'red',outline = 'green')
cv.pack()
root.mainloop()
# 指定矩形的填充色為紅色
item屬性
# 指定畫布的背景色為白色
# 使用屬性dash,這個值只能為奇數(shù)
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
cv.create_rectangle(10,10,110,110,
outline = 'red',
dash = 10,
fill = 'green')
cv.pack()
root.mainloop()
# 指定矩形的邊框顏色為紅色,畫虛線
虛線框
# 指定畫布的背景色為白色
# 使用屬性stipple
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
cv.create_rectangle(10,10,110,110,
outline = 'red',
stipple = 'gray12',
fill = 'green')
cv.pack()
root.mainloop()
# 指定矩形的邊框顏色為紅色,自定義畫刷
畫刷填充
# 指定畫布的背景色為白色
# 使用Canvas的方法來重新設(shè)置item的坐標
from tkinter import *
root = Tk()
# 創(chuàng)建一個Canvas,設(shè)置其背景色為白色
cv = Canvas(root,bg = 'white')
rt = cv.create_rectangle(10,10,110,110,
outline = 'red',
stipple = 'gray12',
fill = 'green')
cv.pack()
# 重新設(shè)置rt的坐標(相當(dāng)于移動一個item)
cv.coords(rt,(110,110,110,110))
root.mainloop()
# 動態(tài)修改item的坐標
item坐標設(shè)置