graphics库的使用
graphics库的基础使用
- 引用库:
- 创建画布:
- 关闭画布:
- 点
- 创建点的实例:
- 申请绘制:
- 点坐标的获取:
- 线
- 创建线的实例:
- 圆
- 创建圆的实例:
- 文本
- 在画布中创建文本实例:
- 修改文本内容:
- 获取文本内容:
- 设置文本大小:
- 设置文本颜色:
- 设置文本类型:
- 多边形
- 创建矩形实例:
- 创建多边形实例:
- 申请绘制:
- 绘制实例:
- 设置线条颜色:
- 设置线条粗细:
- 设置填充色
- 鼠标的获取:
- 文本输入框
- 代码
- 运行结果
- 小练习
- 目标:
- 代码:
- 运行结果:
引用库:
from graphics import *
创建画布:
win = GraphWin(<画布名称>,<画布长度>,<画布宽度>)
#(可以更简洁的创建画布)
关闭画布:
win.close()
#(必须代码,切记)
在画布上,左上角坐标为(0,0)
一个实例只能够在画布上绘制一次,多次在不同地方绘制,只能显示最近一次的绘制结果(一一对应)
点
创建点的实例:
p = Point(x,y)
#(x,y为坐标)
申请绘制:
p.draw(win)
点坐标的获取:
x_local = p.getX()#获取横坐标
y_local = p.getY()#获取纵坐标
线
创建线的实例:
l = Line(Point(x,y),Point(x,y))
#绘制两点间的连线
圆
创建圆的实例:
<实例名称> = Circle(Point(x,y),R)
#Point(x,y)为圆心坐标,R为圆的半径
文本
在画布中创建文本实例:
txt = Text(Point(x,y),<文本内容>)
#Point()为文本中心点的坐标
修改文本内容:
<实例名称>.setText(<文本内容>)
获取文本内容:
mes = <实例名称>.getText()
设置文本大小:
<实例名称>.setSize(<size>)
设置文本颜色:
<实例名称>.setTextColor(<color>)
设置文本类型:
<实例名称>.setStyle(<style>)
多边形
创建矩形实例:
rec = Rectangle(p1,p2)
#p1为左上角顶点的坐标,p2为右下角顶点的坐标
创建多边形实例:
polygon = Polygon(p1,p2,p3,.......)
#在Polygon后的点可以使用单个的点坐标,也可以使用坐标的集合
申请绘制:
绘制实例:
<实例名称>.draw(win)
设置线条颜色:
<实例名称>.setOutline(<color>)
设置线条粗细:
<实例名称>.setWidth(<width>)
设置填充色
<实例名称>.setFill(<color>)
鼠标的获取:
gm = win.getMouse()
#窗口会将点击的坐标值返回到gm中
文本输入框
mes = Entry(Point(x,y),width)
#Point为输入框中心坐标,width为输入框长度
mes.draw(win)
实例:
代码
首先引用库,创建画布:
from graphics import *
win = GraphWin('run',300,300)#创建一个长宽为300像素的画布
然后建立一个输入框的实例并在画布中展示出来:
mes = Entry(Point(150,150),15)#创建输入框实例
mes.draw(win)#在画布中显示输入框
win.getMouse()#点击画布执行下一步
通过getText()方法来获取输入框内的文本,然后将文本的内容展示在画布上:
txt = mes.getText()#获取输入框内的内容
mes2 = Text(Point(150,200),txt)#创建文本实例
mes2.draw(win)#在画布上展示文本
win.getMouse()#点击画布执行下一步
在代码的最后,要记得关闭画布哦:
win.close()
如果忘记使用这条代码,可以手动关闭画布,或者使用调试系统,输入win.close()
同样可以强制关闭画布。
运行结果
在输入框内随便输入内容,再点击画布其他位置继续执行代码:
再次点击画布,代码结束,画布关闭。
是不是很简单?!
最后,再分享一个小代码,可以自己尝试写一写,练一练:
小练习
目标:
通过鼠标点击获取坐标,在鼠标点击处绘制图形:
代码:
引用库,创建画布(别说我啰嗦,这是必备的!)
from graphics import *
shape = [500,500]#设置屏幕的大小
win = GraphWin('点击画爱心',shape[0],shape[1])#创建画布
设置退出按钮的各个顶点坐标:
p_1 = Point(shape[0]/2-35,shape[1]-45)
p_2 = Point(shape[0]/2+35,shape[1]-45)
p_3 = Point(shape[0]/2+35,shape[1]-5)
p_4 = Point(shape[0]/2-35,shape[1]-5)
exit_bu = [p_1,p_2,p_3,p_4]
在画布上绘制出退出按钮,但是刚开始的按钮并没有任何功能。
#在画布上绘制退出按钮
rec = Polygon(*exit_bu)#创建多边形,也可以使用矩形
txt = Text(Point(shape[0]/2,shape[1]-25),'退出')
txt.setSize(15)#设置文本的大小
txt.draw(win)
rec.draw(win)
然后,设置循环,通过win.getMouse()
方法来获取鼠标点击时的坐标,win.getMouse()
的返回值是一个点,Point()类型,可以使用getX(),getY()
来获取点的横纵坐标。
while True:p = win.getMouse()#获取鼠标点击画布时的坐标px = p.getX()#获取X坐标py = p.getY()#获取Y坐标draw_p = [Point(px,py),Point(px+10,py-10),Point(px+20,py),Point(px,py+20),Point(px-20,py),Point(px-10,py-10)]#将需要绘制图形的点集合在一起,这里是一个简陋的❤po = Polygon(*draw_p)#使用多边形的绘制方法来绘制我们所需图形po.setFill('red')#设置图形填充色po.setOutline('white')#设置图形线条的颜色po.draw(win)
在我们程序可以得到鼠标点击时的坐标后,我们就可以来实现退出按钮的功能,接下来就开始设置按钮的作用:结束程序。
#设置退出功能能if((shape[0]/2+35)>px>(shape[0]/2-35))and((shape[1]-5)>py>(shape[1]-45)):#当鼠标点击在按钮内部时,退出程序break
关闭画布
#win.getMouse()
win.close()
print('感谢你的使用!')
运行结果:
代码部分就那么多了,接下来展示代码运行结果:
以上就是本次分享的全部内容,感谢各位的观看!
graphics库的使用相关推荐
- Python graphics库详解
graphics库可以从http://mcsp.wartburg.edu/zelle/python/graphics.py下载,下载后的graphics.py放到python的安装文件夹下即可 Gra ...
- MAUI中Maui.Graphics.Controls绘制控件
简介 Microsoft.Maui.Graphics是一个完全采用C#的iOS,Android,Windows,macOS,Tizen和Linux的跨平台图形库. 对于MAUI项目当中绘制的方案是使用 ...
- python ios 坐标点击_python点击鼠标获取坐标(Graphics)
使用Python进行图像编程,要使用到Graphics库.下面列举出较常用的代码 from graphics import * #设置画布窗口名和尺寸 win = GraphWin('hehe', 6 ...
- linux编译动态库未定义,GCC链接库的一个坑:动态库存在却提示未定义动态库的函数...
背景 在GCC中已经指定链接库,然而编译时却提示动态库函数未定义! 测试出现的错误提示如下: [GMPY@13:48 tmp]$gcc -o test -L. -lmylib test.c /tmp/ ...
- 不要使用虚函数作为库的接口
[转] C++ 工程实践:避免使用虚函数作为库的接口 原文: http://blog.csdn.net/Solstice/archive/2011/03/12/6244905.aspx 陈硕 (gia ...
- 避免使用虚函数作为库的接口
转自:陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 摘要:作为 C++ 动态库的作者,应当避免使用虚函数作为库的接口.这么做会给保持二进制兼容性带 ...
- C++ 工程实践:避免使用虚函数作为库的接口
原文: http://blog.csdn.net/Solstice/archive/2011/03/12/6244905.aspx 陈硕 (giantchen_AT_gmail) Blog.csdn. ...
- C++ 工程实践(5):避免使用虚函数作为库的接口
https://blog.csdn.net/solstice/article/details/6244905 摘要:作为 C++ 动态库的作者,应当避免使用虚函数作为库的接口.这么做会给保持二进制兼容 ...
- 用python的turtle画圆-(python海龟绘图怎么增加每次画圆的半径)
Python 如何调用graphics库画圆弧,半圆等 import turtle turtle.left(135) turtle.circle(120,90) turtle.done() pytho ...
- python turtle画椭圆-【python turtle如何画椭圆】
python turtle画4个同心圆方法 from turtle import * def Circle(radius,angle,length): for i in range(length): ...
最新文章
- [JavaScript] Map类型在JavaScript中的使用
- 如何开启远程(win7win8)
- 嘿嘿,我就知道面试官接下来要问我 ConcurrentHashMap 底层原理了,看我怎么秀他...
- linux去掉某一字符开头的行
- 前端学习(3184):ant-design的button介绍按钮属性
- web service 学习 2 -- 什么时候应该使用web service
- jQuery(2)——如何使用jQuery回显数据
- 单片机c语言常用的语句有几条,单片机C语言教程-基础语句
- 编程:Python实现图片识别
- 摩根大通的企业级区块链解决方案—Quorum
- Spring Boot入门教程(四):配置文件
- Class的基本语法
- Keil to STM32CubeIDE标准库移植
- 与领导吃饭需要注意什么
- java file.separator_关于Java的File.separator
- 分享qq,wx,qqZone,weibo基于vue
- 专家详解“手机窃听”:夸大宣传并不神奇
- windows7系统能安MATLAB几,matlab7.0安装win7系统详细使用方法
- 疯狂Java讲义(十三)----第二部分
- SCRM营销: 关于微信个人号批量运营的干货分享!