iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用Python中的tkinter模块作图的方法
  • 646
分享到

使用Python中的tkinter模块作图的方法

模块方法Python 2022-06-04 18:06:07 646人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

python简述: python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和WEB编程。Python[1]已经

python简述:

python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和WEB编程。Python[1]已经成为最受欢迎的程序设计语言之一。2011年1月,它被TioBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率是呈线性增长。

tkinter模块介绍

tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在windowsMacintosh系统里.,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()>>> 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图像库。

十、创建基本的动画

创建一个填了色的三角形,让它在屏幕上横向移动:


import timefrom 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行为:


import timefrom 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(在结尾处加上这段代码)


import timefrom 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会自动调用这个函数来处理事件。

例如,要让三角形在按下回车键时移动,我们可以定义这个函数:


def movetriangle(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)def movetriangle(event): canvas.move(1,5,0)canvas.bind_all('<KeyPress-Return>',movetringle) ##让tkinter监视KeyPress事件,当该事件发生时调用movetriangle函数

那么我们如何根据按键的不同而改变三角形的方向呢?比如用方向键。

我们可以尝试改下movetriangle函数:


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

最后代码汇总在一起为:


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) ##第一个参数使画布上所画的形状的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('<KeyPress-Up>',movetriangle) ##让tkinter监视KeyPress事件,当该事件发生时调用movetriangle函数canvas.bind_all('<KeyPress-Down>',movetriangle)canvas.bind_all('<KeyPress-Left>',movetriangle)canvas.bind_all('<KeyPress-Right>',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语言的优点,其最主要的就是易学,而且可以调用各种库。

以上所述是小编给大家介绍的使用Python中的tkinter模块作图的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: 使用Python中的tkinter模块作图的方法

本文链接: https://www.lsjlt.com/news/13697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中tkinter模块的使用方法是什么
    在Python中使用tkinter模块来创建图形用户界面(GUI)应用程序。下面是使用tkinter模块创建GUI应用程序的基本步骤...
    99+
    2024-04-02
  • python Tkinter模块使用方法详解
    目录一、前言1.1、Tkinter是什么二、准备工作2.1、Windows演示环境搭建三、Tkinter创建窗口3.1、创建出一个窗口3.2、给窗口取一个标题3.3、窗口设置3.3、...
    99+
    2024-04-02
  • python tkinter模块的简单使用
    目录1.任务要求 2.简单设计 3.模块实现4.总结由于一些小原因,被迫开始了tkinter一次实战演练。在此做一些记录,总结以及给自己留一些轮子哈哈哈哈哈哈 tkinter 是 P...
    99+
    2024-04-02
  • Python中concurrent.futures模块的使用方法
    这篇文章主要介绍了Python中concurrent.futures模块的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明标准库为我们提供了concurrent...
    99+
    2023-06-15
  • python中elasticsearch_dsl模块的使用方法
    目录前言连接elasticsearchelasticsearch_dsl.Searchquery方法filter方法index方法elasticsearch_dsl.queryela...
    99+
    2024-04-02
  • python中sys模块的使用方法
    小编给大家分享一下python中sys模块的使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted...
    99+
    2023-06-14
  • 使用Python中Tkinter模块的Treeview 组件显示ini文件操作
    前言: Tkinter模块的Treeview组件类似于Dev中的treelist控件,但前者还可以当做树控件和表格控件使用,虽然功能可能没有dev和winform控件那么强大,但是在...
    99+
    2024-04-02
  • Python中模块的使用--binascii模块用法
    目录binascii模块用法binascii模块和进制转换笔记 Python内置函数binascii模块用法 binascii模块用于在二进制和ASCII之间转换 >...
    99+
    2024-04-02
  • python的tkinter模块怎么安装和使用
    在安装Python时,Tkinter模块已经包含在标准库中,因此无需额外安装。要使用Tkinter模块,需要在Python脚本中导入...
    99+
    2023-09-09
    python tkinter
  • python中Tkinter模块指的是什么
    这篇文章主要介绍python中Tkinter模块指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、说明Tkinter模块是Python的标准TkGUI工具包的接口。Tk和Tkinter可以在大多数Unix平...
    99+
    2023-06-15
  • 详解Python中Addict模块的使用方法
    目录介绍1.安装2.用法3.要牢记的事情4.属性,如键、item等5.默认值6.转化为普通字典7.计数8.更新9.Addict 是怎么来的介绍 Addit 是一个Python模块,除...
    99+
    2024-04-02
  • Python使用yaml模块操作YAML文档的方法
    目录1. YAML简介2. 语法规则3. 文件数据结构4. YAML数据格式示例5. 安装yaml库6. 读取YAML6.1 读取键值对或嵌套键值对6.2 读取数组类型6.3 多文档...
    99+
    2023-01-13
    Python使用yaml模块 Python使用yaml模块操作YAML文档
  • tkinter模块如何在python中应用
    这篇文章将为大家详细讲解有关tkinter模块如何在python中应用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.任务要求画一个具有上传病患信息以及图片功能的用户界面2.简单设计由于时...
    99+
    2023-06-14
  • python的Tkinter方法怎么使用
    本篇内容主要讲解“python的Tkinter方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python的Tkinter方法怎么使用”吧!一、前言1.1、Tkinter是什么Tkin...
    99+
    2023-06-29
  • Python使用tkinter加载png、jpg等图片的方法
    本篇内容主要讲解“Python使用tkinter加载png、jpg等图片的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python使用tkinter加载png、jpg等图片的方法”吧!Py...
    99+
    2023-06-14
  • python学习pymongo模块的使用方法
    前言: pymongo模块是python操作mongo数据的第三方模块,记录一下自己常用到的简单用法。 首先需要连接数据库: MongoClient():该方法第一个参数是数据库所在...
    99+
    2024-04-02
  • python中的urllib模块中的方法
    python urllib.request之urlopen函数urllib是基于http的高层库,它有以下三个主要功能:(1)request处理客户端的请求(2)response处理服务端的响应(3)parse会解析url下面讨论的是req...
    99+
    2023-01-31
    模块 方法 python
  • 使Python中的turtle模块画图两
    turtle.circle(radius, extent=None, steps=None) 描述: 以给定半径画圆 参数: radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆 extent(弧度) (optiona...
    99+
    2023-01-31
    画图 模块 Python
  • Node.js中fs模块的使用方法
    引入fs模块 var fs=require('fs'); 1. fs.stat检测是文件还是目录 fs.stat('html/style.css', function (err, s...
    99+
    2024-04-02
  • Python使用Cv2模块识别验证码的操作方法
    目录业务需求需求分析代码一结果分析 代码二代码模块结果呈现总结经验 参考文献业务需求       &n...
    99+
    2023-01-03
    Python Cv2验证码识别 Python 验证码识别 Python Cv2验证码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作