欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python中的tkinter模塊作圖的方法

 更新時間:2017年02月07日 10:50:07   作者:Zoctopus  
Python是一種解釋型、面向?qū)ο?、動態(tài)數(shù)據(jù)類型的高級程序設(shè)計語言。tkinter模塊(“Tk 接口”)是Python的標準Tk GUI工具包的接口。接下來通過本文給大家介紹Python中的tkinter模塊作圖教程,需要的朋友參考下

python簡述:

Python是一種解釋型、面向?qū)ο?、動態(tài)數(shù)據(jù)類型的高級程序設(shè)計語言。自從20世紀90年代初Python語言誕生至今,它逐漸被廣泛應(yīng)用于處理系統(tǒng)管理任務(wù)和Web編程。Python[1]已經(jīng)成為最受歡迎的程序設(shè)計語言之一。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。自從2004年以后,python的使用率是呈線性增長。

tkinter模塊介紹

tkinter模塊(“Tk 接口”)是Python的標準Tk GUI工具包的接口.Tk和Tkinter可以在大多數(shù)的Unix平臺下使用,同樣可以應(yīng)用在Windows和Macintosh系統(tǒng)里.,Tk8.0的后續(xù)版本可以實現(xiàn)本地窗口風格,并良好地運行在絕大多數(shù)平臺中。

由于Tkinter是內(nèi)置到python的安裝包中、只要安裝好Python之后就能import Tkinter庫、而且IDLE也是用Tkinter編寫而成、對于簡單的圖形界面Tkinter還是能應(yīng)付自如。

八、顯示文字

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

>>> 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函數(shù)還有幾個很有用的參數(shù),比方說字體顏色等。在下面的代碼中,我們調(diào)用create_text函數(shù)時使用了坐標(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函數(shù)。

這是我存在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讓函數(shù)使用左上角(northwest 西北方)作為畫圖的起始點,最后一個具名參數(shù)image指向裝入的圖片。

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

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

十、創(chuàng)建基本的動畫

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

import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=200)canvas.pack()canvas.create_polygon(10,10,10,60,50,35) ##創(chuàng)建三角形for x in range(0,60): canvas.move(1,5,0) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置 tk.update()   ##強制tkinter更新屏幕(重畫)   time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然后再繼續(xù)

三角形橫向移動

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

import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35) ##創(chuàng)建三角形for x in range(0,60): canvas.move(1,5,5) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置 tk.update()   ##強制tkinter更新屏幕(重畫)   time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然后再繼續(xù)

三角形沿對角線移動

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

import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35) ##創(chuàng)建三角形for x in range(0,60): canvas.move(1,5,5) ##把任意畫好的對象移動到把x和y坐標增加給定值的位置 tk.update()   ##強制tkinter更新屏幕(重畫)   time.sleep(0.05) ##讓程序休息二十分之一秒(0.05秒),然后再繼續(xù)for x in range(0,60): canvas.move(1,-5,-5)  tk.update()     time.sleep(0.05)

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

十一、讓對象對操作有反應(yīng)

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

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

換句話說,tkinter會自動調(diào)用這個函數(shù)來處理事件。

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

def movetriangle(event): canvas.move(1,5,0)

這個函數(shù)只接受一個參數(shù)(event),tkinter用它來給函數(shù)傳遞關(guān)于事件的信息?,F(xiàn)在我們用畫布canvas上的bind_all函數(shù)來告訴tkinter當特定事件發(fā)生時應(yīng)該調(diào)用這個函數(shù)。代碼如下:

from tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35)def movetriangle(event): canvas.move(1,5,0)canvas.bind_all('<KeyPress-Return>',movetringle) ##讓tkinter監(jiān)視KeyPress事件,當該事件發(fā)生時調(diào)用movetriangle函數(shù)

那么我們?nèi)绾胃鶕?jù)按鍵的不同而改變?nèi)切蔚姆较蚰??比如用方向鍵。

我們可以嘗試改下movetriangle函數(shù):

def movetriangle(event): if event.keysym == 'up':  canvas.move(1,0,-3) ##第一個參數(shù)使畫布上所畫的形狀的ID數(shù)字,第二個是對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)

最后代碼匯總在一起為:

from tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35)def movetriangle(event): if event.keysym == 'Up':  canvas.move(1,0,-3) ##第一個參數(shù)使畫布上所畫的形狀的ID數(shù)字,第二個是對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('<KeyPress-Up>',movetriangle) ##讓tkinter監(jiān)視KeyPress事件,當該事件發(fā)生時調(diào)用movetriangle函數(shù)canvas.bind_all('<KeyPress-Down>',movetriangle)canvas.bind_all('<KeyPress-Left>',movetriangle)canvas.bind_all('<KeyPress-Right>',movetriangle)

方向鍵控制三角形的移動

十二、更多使用ID的方法

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

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

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

我們可以用itemconfig來改變?nèi)切蔚念伾@需要把ID作為第一個參數(shù):

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

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

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

總結(jié)做出了簡單的動畫。學會了如何用事件綁定來讓圖形響應(yīng)按鍵,這在寫計算機游戲時很有用。在tkinter中以create開頭的函數(shù)是如何返回一個ID數(shù)字。

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

以上所述是小編給大家介紹的使用Python中的tkinter模塊作圖的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Python爬蟲基礎(chǔ)之簡單說一下scrapy的框架結(jié)構(gòu)

    Python爬蟲基礎(chǔ)之簡單說一下scrapy的框架結(jié)構(gòu)

    今天給大家?guī)淼氖顷P(guān)于Python爬蟲的相關(guān)知識,文章圍繞著scrapy的框架結(jié)構(gòu)展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python實現(xiàn)網(wǎng)站注冊驗證碼生成類

    Python實現(xiàn)網(wǎng)站注冊驗證碼生成類

    這篇文章主要為大家詳細介紹了Python實現(xiàn)網(wǎng)站注冊驗證碼生成類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Python實戰(zhàn)之設(shè)計一個多功能辦公小工具

    Python實戰(zhàn)之設(shè)計一個多功能辦公小工具

    這篇文章主要介紹了通過Python制作一個多功能的辦公小工具,可以實現(xiàn)應(yīng)用、網(wǎng)頁直達以及天氣查詢,代碼具有一定學習價值,需要的小伙伴可以了解一下
    2021-12-12
  • Python 旋轉(zhuǎn)立方體的實現(xiàn)示例

    Python 旋轉(zhuǎn)立方體的實現(xiàn)示例

    本文主要介紹了Python 旋轉(zhuǎn)立方體的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • python 實現(xiàn)對文件夾內(nèi)的文件排序編號

    python 實現(xiàn)對文件夾內(nèi)的文件排序編號

    下面小編就為大家分享一篇python 實現(xiàn)對文件夾內(nèi)的文件排序編號,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python中pycurl庫的用法實例

    python中pycurl庫的用法實例

    這篇文章主要介紹了python中pycurl庫的用法實例,可實現(xiàn)從指定網(wǎng)址讀取網(wǎng)頁的功能,需要的朋友可以參考下
    2014-09-09
  • Python 打印中文字符的三種方法

    Python 打印中文字符的三種方法

    本文給大家分享三種方法實現(xiàn)python打印中文字符的方法,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-08-08
  • 詳解運行Python的神器Jupyter Notebook

    詳解運行Python的神器Jupyter Notebook

    如果我們想要運行Python,就是在Python或者IPython的解釋器環(huán)境中進行交互式運行,或者程序員最喜歡的編寫.py文件,在文件中編寫python代碼,然后運行。如果想寫一篇Python的文章,里面有代碼,還希望代碼在當前頁面運行,那就是使用我們今天要介紹的Jupyter Notebook。
    2021-06-06
  • Python使用jsonpath-rw模塊處理Json對象操作示例

    Python使用jsonpath-rw模塊處理Json對象操作示例

    這篇文章主要介紹了Python使用jsonpath-rw模塊處理Json對象操作,結(jié)合實例形式分析了Python使用requests與response處理json的方法,并給出了jsonpath_rw模塊操作json對象的基本示例,需要的朋友可以參考下
    2018-07-07
  • 將python安裝信息加入注冊表的示例

    將python安裝信息加入注冊表的示例

    今天小編就為大家分享一篇將python安裝信息加入注冊表的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評論