日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Tkinter的Canvas组件

發(fā)布時(shí)間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tkinter的Canvas组件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、簡(jiǎn)介

Canvas組件,是一個(gè)可以繪制界面的組件,

Canvas組件是通用的組件,通常用來(lái)顯示或編輯圖形,可以用來(lái)繪制直線、圓形、多邊形,甚至是繪制其他組件

二、用Canvas繪制簡(jiǎn)單的直線與矩形

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()

運(yùn)行:

三、刪除Canvas上的對(duì)象

添加到Canvas上對(duì)象會(huì)一直保留著,可以使用coords()、itemconfig()和move()方法來(lái)移動(dòng)畫(huà)布上的對(duì)象,或者使用delete()方法來(lái)刪除

?

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()

運(yùn)行:

四、在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()

運(yùn)行:

五、Canvas繪制橢圓與圓形

使用create_oval()方法繪制橢圓形或圓形,參數(shù)是指定一個(gè)限定矩形,Tkinter會(huì)自動(dòng)在這個(gè)矩形內(nèi)繪制一個(gè)橢圓

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()

運(yùn)行:

繪制圓形,就是修改坐標(biāo)參數(shù),將設(shè)定矩形設(shè)置為正方形

w.create_oval(70, 20, 130, 80, fill="pink")

六、Canvas繪制五角星

想繪制多邊形,可以使用create_polygon()方法,具體怎樣確定五個(gè)角的坐標(biāo),可以自行研究,比較復(fù)雜,在這只給出現(xiàn)成的源碼

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 = [
??? # 左上點(diǎn)
??? center_x - int(r * m.sin(2 * m.pi / 5)),
??? center_y - int(r * m.cos(2 * m.pi / 5)),
??? # 右上點(diǎn)
??? center_x + int(r * m.sin(2 * m.pi / 5)),
??? center_y - int(r * m.cos(2 * m.pi / 5)),
??? # 左下點(diǎn)
??? center_x - int(r * m.sin(m.pi / 5)),
??? center_y + int(r * m.cos(m.pi / 5)),
??? # 頂點(diǎn)
??? center_x,
??? center_y - r,
??? # 右下點(diǎn)
??? 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()

運(yùn)行:

?

?



?

總結(jié)

以上是生活随笔為你收集整理的Tkinter的Canvas组件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。