使⽤Python中的tkinter模块作图的⽅法
python简述:
Python是⼀种解释型、⾯向对象、动态数据类型的⾼级程序设计语⾔。⾃从20世纪90年代初Python语⾔诞⽣⾄今,它逐渐被⼴泛应⽤于处理系统管理任务和Web编程。Python[1]已经成为最受欢迎的程
序设计语⾔之⼀。2011年1⽉,它被TIOBE编程语⾔排⾏榜评为2010年度语⾔。⾃从2004年以后,python的使⽤率是呈线性增长。
tkinter模块介绍
tkinter模块(“Tk 接⼝”)是Python的标准Tk GUI⼯具包的接⼝.Tk和Tkinter可以在⼤多数的Unix平台下使⽤,同样可以应⽤在Windows和Macintosh系统⾥.,Tk8.0的后续版本可以实现本地窗⼝风格,并良好地运
⾏在绝⼤多数平台中。
由于Tkinter是内置到python的安装包中、只要安装好Python之后就能import Tkinter库、⽽且IDLE也是⽤Tkinter编写⽽成、对于简单的图形界⾯Tkinter还是能应付⾃如。
⼋、显⽰⽂字
⽤create_text在画布上写字。这个函数只需要两个坐标(⽂字x和y的位置),还有⼀个具名参数来接受要显⽰的⽂字。例如:
>>> from tkinter import*>>> tk = Tk()>>> canvas = Canvas(tk,width=400,height=400)>>> canvas.pack()>>> ate_text(150,100,text='Happy birthday to you')
html编程题
create_text函数还有⼏个很有⽤的参数,⽐⽅说字体颜⾊等。在下⾯的代码中,我们调⽤create_text函数时使⽤了坐标(130,120),还有要显⽰的⽂字,以及红⾊的填充⾊:
static 函数
我们还可以指定字体,⽅法是给出⼀个包含字体名和字体⼤⼩的元组。例如⼤⼩为20的Times字体就是('Times',20):
>>> ate_text(150,150,text='Happy birthday',font=('Times',15))>>> ate_text(200,200,text='Happy birthday',font=('Courier',22))>>> ate_text(220,300,text='Happy birthday',font=('Couried',30))
九、显⽰图⽚
要⽤tkinter在画布上显⽰图⽚,⾸先要装⼊图⽚,然后使⽤canvas对象上的create_image函数。
这是我存在E盘上的⼀张图⽚:
我们可以这样来显⽰one.gif图⽚:sqlite怎么创建数据库和表
>>> from tkinter import*>>> tk = Tk()>>> canvas = Canvas(tk,width=400,height=400)>>> canvas.pack()>>> my_image = PhotoImage(file='E:\\FFOutput\\one.gif')>>> ate_image(0,0,anchor = NW,image = my_image) >>> ate_image(50,50
在第五⾏中,把图⽚装⼊到变量my_image中。坐标(0,0)/(50,50)是我们要显⽰图⽚的位置, anchor=NW让函数使⽤左上⾓(northwest 西北⽅)作为画图的起始点,最后⼀个具名参数image指向装
⼊的图
python基础代码写字⽚。
注:⽤tkinter只能装⼊GIF图⽚,也就是扩展名是.gif的图⽚⽂件。
想要显⽰其他类型的图⽚,如PNG和JPG,需要⽤到其他的模块,⽐如Python图像库。
⼗、创建基本的动画
数据库中insert into的用法
创建⼀个填了⾊的三⾓形,让它在屏幕上横向移动:
import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=200)canvas.pack()ate_polygon(10,10,10,60,50,35) ##创建三⾓形for x in range(0,60): ve(1,5,0) ##把任意画好的对象移动到把x和y坐标增加给定值的位置 tk.updat
三⾓形横向移动
延伸⼀下,如果想让三⾓形沿对⾓线在屏幕上移动,我们可以第8⾏为:
import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()ate_polygon(10,10,10,60,50,35) ##创建三⾓形for x in range(0,60): ve(1,5,5) ##把任意画好的对象移动到把x和y坐标增加给定值的位置 tk.updat 三⾓形沿对⾓线移动
如果要让三⾓形在屏幕上沿对⾓线回到开始的位置,要⽤-5,-5(在结尾处加上这段代码)
import timefrom tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()ate_polygon(10,10,10,60,50,35) ##创建三
⾓形for x in range(0,60): ve(1,5,5) ##把任意画好的对象移动到把x和y坐标增加给定值的位置 tk.updat 对⾓线运动并回到初始位置
⼗⼀、让对象对操作有反应
我们可以⽤“消息绑定”来让三⾓形在有⼈按下某键时有反应。
要开始处理事件,我们⾸先要创建⼀个函数。当我们告诉tkinter将某个特定函数绑到(或关联到)某个特定事件上时就完成了绑定。
换句话说,tkinter会⾃动调⽤这个函数来处理事件。
例如,要让三⾓形在按下回车键时移动,我们可以定义这个函数:
def movetriangle(event): ve(1,5,0)
这个函数只接受⼀个参数(event),tkinter⽤它来给函数传递关于事件的信息。现在我们⽤画布canvas上的bind_all函数来告诉tkinter当特定事件发⽣时应该调⽤这个函数。代码如下:
from tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()ate_
polygon(10,10,10,60,50,35)def movetriangle(event): ve(1,5,0)canvas.bind_all('<KeyPress-Return>',movetringle) ##让tkinter监视KeyPress事件,当该那么我们如何根据按键的不同⽽改变三⾓形的⽅向呢?⽐如⽤⽅向键。
numerical data我们可以尝试改下movetriangle函数:
def movetriangle(event): if event.keysym == 'up': ve(1,0,-3) ##第⼀个参数使画布上所画的形状的ID数字,第⼆个是对x(⽔平⽅向)坐标增加的值,第三个是对y(垂直⽅向)坐标增加的值 elif event.keysym == 'down': ve(1,0,3) elif event.k 最后代码汇总在⼀起为:
from tkinter import*tk = Tk()canvas = Canvas(tk,width=400,height=400)canvas.pack()ate_polygon(10,10,10,60,50,35)def movetriangle(event): if event.keysym == 'Up': ve(1,0,-3) ##第⼀个参数使画布上所画的形状的ID数字,第⼆个是对x(⽅向键控制三⾓形的移动
⼗⼆、更多使⽤ID的⽅法
只要⽤了画布上⾯以create_开头的函数,它总会返回⼀个ID。这个函数可以在其他的函数中使⽤。
如果我们修改代码来把返回值作为⼀个变量保存,然后使⽤这个变量,那么⽆论返回值是多少,这段
代码都能⼯作:
>>> mytriangle = ate_polygon(10,10,10,60,50,35)>>> ve(mytriangle,5,0)
我们可以⽤itemconfig来改变三⾓形的颜⾊,这需要把ID作为第⼀个参数:
>>> canvas.itemconfig(mytrigle,fill='bue') ##把ID为变量mytriangle中的值的对象的填充颜⾊改为蓝⾊
也可以给三⾓形⼀条不同颜⾊的轮廓线,同样适⽤ID作为第⼀个参数:
>>> canvas.itemconfig(mytrigle,outline='red')
总结做出了简单的动画。学会了如何⽤事件绑定来让图形响应按键,这在写计算机游戏时很有⽤。在tkinter中以create开头的函数是如何返回⼀个ID数字。
已经学习Python两天,最开始是想着是通过觉得⽤它写个动画或者画个图形⽐较⽅便,⽽且界⾯美观,⽐⿊洞洞的dos窗⼝好多了,准备写个程序送个⼀⼥孩作为⽣⽇礼物(去年答应好的)。经过这两
天的学习,我慢慢发觉了Python语⾔的优点,其最主要的就是易学,⽽且可以调⽤各种库。
以上所述是⼩编给⼤家介绍的使⽤Python中的tkinter模块作图的⽅法,希望对⼤家有所帮助,如果⼤
家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论