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库的使用相关推荐

  1. Python graphics库详解

    graphics库可以从http://mcsp.wartburg.edu/zelle/python/graphics.py下载,下载后的graphics.py放到python的安装文件夹下即可 Gra ...

  2. MAUI中Maui.Graphics.Controls绘制控件

    简介 Microsoft.Maui.Graphics是一个完全采用C#的iOS,Android,Windows,macOS,Tizen和Linux的跨平台图形库. 对于MAUI项目当中绘制的方案是使用 ...

  3. python ios 坐标点击_python点击鼠标获取坐标(Graphics)

    使用Python进行图像编程,要使用到Graphics库.下面列举出较常用的代码 from graphics import * #设置画布窗口名和尺寸 win = GraphWin('hehe', 6 ...

  4. linux编译动态库未定义,GCC链接库的一个坑:动态库存在却提示未定义动态库的函数...

    背景 在GCC中已经指定链接库,然而编译时却提示动态库函数未定义! 测试出现的错误提示如下: [GMPY@13:48 tmp]$gcc -o test -L. -lmylib test.c /tmp/ ...

  5. 不要使用虚函数作为库的接口

    [转] C++ 工程实践:避免使用虚函数作为库的接口 原文: http://blog.csdn.net/Solstice/archive/2011/03/12/6244905.aspx 陈硕 (gia ...

  6. 避免使用虚函数作为库的接口

     转自:陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 摘要:作为 C++ 动态库的作者,应当避免使用虚函数作为库的接口.这么做会给保持二进制兼容性带 ...

  7. C++ 工程实践:避免使用虚函数作为库的接口

    原文: http://blog.csdn.net/Solstice/archive/2011/03/12/6244905.aspx 陈硕 (giantchen_AT_gmail) Blog.csdn. ...

  8. C++ 工程实践(5):避免使用虚函数作为库的接口

    https://blog.csdn.net/solstice/article/details/6244905 摘要:作为 C++ 动态库的作者,应当避免使用虚函数作为库的接口.这么做会给保持二进制兼容 ...

  9. 用python的turtle画圆-(python海龟绘图怎么增加每次画圆的半径)

    Python 如何调用graphics库画圆弧,半圆等 import turtle turtle.left(135) turtle.circle(120,90) turtle.done() pytho ...

  10. python turtle画椭圆-【python turtle如何画椭圆】

    python turtle画4个同心圆方法 from turtle import * def Circle(radius,angle,length): for i in range(length): ...

最新文章

  1. [JavaScript] Map类型在JavaScript中的使用
  2. 如何开启远程(win7win8)
  3. 嘿嘿,我就知道面试官接下来要问我 ConcurrentHashMap 底层原理了,看我怎么秀他...
  4. linux去掉某一字符开头的行
  5. 前端学习(3184):ant-design的button介绍按钮属性
  6. web service 学习 2 -- 什么时候应该使用web service
  7. jQuery(2)——如何使用jQuery回显数据
  8. 单片机c语言常用的语句有几条,单片机C语言教程-基础语句
  9. 编程:Python实现图片识别
  10. 摩根大通的企业级区块链解决方案—Quorum
  11. Spring Boot入门教程(四):配置文件
  12. Class的基本语法
  13. Keil to STM32CubeIDE标准库移植
  14. 与领导吃饭需要注意什么
  15. java file.separator_关于Java的File.separator
  16. 分享qq,wx,qqZone,weibo基于vue
  17. 专家详解“手机窃听”:夸大宣传并不神奇
  18. windows7系统能安MATLAB几,matlab7.0安装win7系统详细使用方法
  19. 疯狂Java讲义(十三)----第二部分
  20. SCRM营销: 关于微信个人号批量运营的干货分享!

热门文章

  1. python按钮事件,Python按钮的响应事件详解
  2. 信呼协同办公系统-存储型XSS漏洞
  3. 2100 年的世界会怎样?用遥感数据预测未来城市
  4. Windows Server 2016-Win Ser 2016已删减内容
  5. 8.10 网络编程——客户端从服务器中下载文件 TFTP协议
  6. JAVA权重计算(根据自己理解计算的,不喜勿喷)
  7. 地震数据剖面图-matlab
  8. 什么是搜索引擎营销(SEM)?
  9. pth(pass the hash)哈希传递攻击
  10. Linux驱动BSP(I2C 驱动实验)