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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pythontkinter在一块区域中绘图_用Python中的tkinter模块作图(续)

發布時間:2025/3/20 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythontkinter在一块区域中绘图_用Python中的tkinter模块作图(续) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

八、顯示文字

用create_text在畫布上寫字。這個函數只需要兩個坐標(文字x和y的位置),還有一個具名參數來接受要顯示的文字。例如:

>>> from tkinter import*

>>> tk =Tk()>>> canvas = Canvas(tk,width=400,height=400)>>>canvas.pack()>>> canvas.create_text(150,100,text='Happy birthday to you')

create_text函數還有幾個很有用的參數,比方說字體顏色等。在下面的代碼中,我們調用create_text函數時使用了坐標(130,120),還有要顯示的文字,以及紅色的填充色:

canvas.create_text(130,120,text='Happy birthday to you!',fill='red')

我們還可以指定字體,方法是給出一個包含字體名和字體大小的元組。例如大小為20的Times字體就是('Times',20):

>>> canvas.create_text(150,150,text='Happy birthday',font=('Times',15))>>> canvas.create_text(200,200,text='Happy birthday',font=('Courier',22))>>> canvas.create_text(220,300,text='Happy birthday',font=('Couried',30))

九、顯示圖片

要用tkinter在畫布上顯示圖片,首先要裝入圖片,然后使用canvas對象上的create_image函數。

這是我存在E盤上的一張圖片:

我們可以這樣來顯示one.gif圖片:

>>> from tkinter import*

>>> tk =Tk()>>> canvas = Canvas(tk,width=400,height=400)>>>canvas.pack()>>> my_image = PhotoImage(file='E:\\FFOutput\\one.gif')>>> canvas.create_image(0,0,anchor = NW,image =my_image)>>> canvas.create_image(50,50,anchor = NW,image = my_image)

在第五行中,把圖片裝入到變量my_image中。坐標(0,0)/(50,50)是我們要顯示圖片的位置, anchor=NW讓函數使用左上角(northwest 西北方)作為畫圖的起始點,最后一個具名參數image指向裝入的圖片。

注:用tkinter只能裝入GIF圖片,也就是擴展名是.gif的圖片文件。

想要顯示其他類型的圖片,如PNG和JPG,需要用到其他的模塊,比如Python圖像庫。

十、創建基本的動畫

創建一個填了色的三角形,讓它在屏幕上橫向移動:

importtimefrom tkinter import*tk=Tk()

canvas= Canvas(tk,width=400,height=200)

canvas.pack()

canvas.create_polygon(10,10,10,60,50,35) ##創建三角形

for x in range(0,60):

canvas.move(1,5,0) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置

tk.update() ##強制tkinter更新屏幕(重畫)

time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然后再繼續

三角形橫向移動

延伸一下,如果想讓三角形沿對角線在屏幕上移動,我們可以第8行為:

importtimefrom tkinter import*tk=Tk()

canvas= Canvas(tk,width=400,height=400)

canvas.pack()

canvas.create_polygon(10,10,10,60,50,35) ##創建三角形

for x in range(0,60):

canvas.move(1,5,5) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置

tk.update() ##強制tkinter更新屏幕(重畫)

time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然后再繼續

三角形沿對角線移動

如果要讓三角形在屏幕上沿對角線回到開始的位置,要用-5,-5(在結尾處加上這段代碼)

importtimefrom tkinter import*tk=Tk()

canvas= Canvas(tk,width=400,height=400)

canvas.pack()

canvas.create_polygon(10,10,10,60,50,35) ##創建三角形

for x in range(0,60):

canvas.move(1,5,5) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置

tk.update() ##強制tkinter更新屏幕(重畫)

time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然后再繼續

for x in range(0,60):

canvas.move(1,-5,-5)

tk.update()

time.sleep(0.05)

對角線運動并回到初始位置

十一、讓對象對操作有反應

我們可以用“消息綁定”來讓三角形在有人按下某鍵時有反應。

要開始處理事件,我們首先要創建一個函數。當我們告訴tkinter將某個特定函數綁到(或關聯到)某個特定事件上時就完成了綁定。

換句話說,tkinter會自動調用這個函數來處理事件。

例如,要讓三角形在按下回車鍵時移動,我們可以定義這個函數:

defmovetriangle(event):

canvas.move(1,5,0)

這個函數只接受一個參數(event),tkinter用它來給函數傳遞關于事件的信息。現在我們用畫布canvas上的bind_all函數來告訴tkinter當特定事件發生時應該調用這個函數。代碼如下:

from tkinter import*tk=Tk()

canvas= Canvas(tk,width=400,height=400)

canvas.pack()

canvas.create_polygon(10,10,10,60,50,35)defmovetriangle(event):

canvas.move(1,5,0)

canvas.bind_all('',movetringle) ##讓tkinter監視KeyPress事件,當該事件發生時調用movetriangle函數

那么我們如何根據按鍵的不同而改變三角形的方向呢?比如用方向鍵。

我們可以嘗試改下movetriangle函數:

defmovetriangle(event):if event.keysym == 'up':

canvas.move(1,0,-3) ##第一個參數使畫布上所畫的形狀的ID數字,第二個是對x(水平方向)坐標增加的值,第三個是對y(垂直方向)坐標增加的值

elif event.keysym == 'down':

canvas.move(1,0,3)elif event.keysym == 'left':

canvas.move(1,-3,0)elsecanvas.move(1,3,0)

最后代碼匯總在一起為:

from tkinter import*tk=Tk()

canvas= Canvas(tk,width=400,height=400)

canvas.pack()

canvas.create_polygon(10,10,10,60,50,35)defmovetriangle(event):if event.keysym == 'Up':

canvas.move(1,0,-3) ##第一個參數使畫布上所畫的形狀的ID數字,第二個是對x(水平方向)坐標增加的值,第三個是對y(垂直方向)坐標增加的值

elif event.keysym == 'Down':

canvas.move(1,0,3)elif event.keysym == 'Left':

canvas.move(1,-3,0)else:

canvas.move(1,3,0)

canvas.bind_all('',movetriangle) ##讓tkinter監視KeyPress事件,當該事件發生時調用movetriangle函數

canvas.bind_all('',movetriangle)

canvas.bind_all('',movetriangle)

canvas.bind_all('',movetriangle)

方向鍵控制三角形的移動

十二、更多使用ID的方法

只要用了畫布上面以create_開頭的函數,它總會返回一個ID。這個函數可以在其他的函數中使用。

如果我們修改代碼來把返回值作為一個變量保存,然后使用這個變量,那么無論返回值是多少,這段代碼都能工作:

>>> mytriangle = canvas.create_polygon(10,10,10,60,50,35)>>> canvas.move(mytriangle,5,0)

我們可以用itemconfig來改變三角形的顏色,這需要把ID作為第一個參數:

>>> canvas.itemconfig(mytrigle,fill='bue') ##把ID為變量mytriangle中的值的對象的填充顏色改為藍色

也可以給三角形一條不同顏色的輪廓線,同樣適用ID作為第一個參數:

>>> canvas.itemconfig(mytrigle,outline='red')

總結

做出了簡單的動畫。

學會了如何用事件綁定來讓圖形響應按鍵,這在寫計算機游戲時很有用。

在tkinter中以create開頭的函數是如何返回一個ID數字。

已經學習Python兩天,最開始是想著是通過覺得用它寫個動畫或者畫個圖形比較方便,而且界面美觀,比黑洞洞的dos窗口好多了,準備寫個程序送個一女孩作為生日禮物(去年答應好的)。經過這兩天的學習,我慢慢發覺了Python語言的優點,其最主要的就是易學,而且可以調用各種庫。

總結

以上是生活随笔為你收集整理的pythontkinter在一块区域中绘图_用Python中的tkinter模块作图(续)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。