今天上课补上了上次未学完比较重点的鼠标和键盘事件,同时开始学习运用turtle进行绘图。

本次课程的代码: https://gitee.com/wang_ming_er/python_course_learning/tree/master/7SeventhClass

1、鼠标和键盘事件

鼠标事件:指哪里显示位置

from tkinter import *

def callback(event):
print( "clicked at:", event.x, event.y)
s = (event.x, event.y)
txt.set(s) win = Tk()
win.geometry('200x120')
win.title('鼠标事件') frame = Frame(win, width=200, height=100, bg = 'cyan')
frame.bind("<Button-1>", callback)
frame.pack() txt = StringVar()
L = Label(win, width=20, textvariable = txt)
L.pack()
win.mainloop()

键盘事件:输入什么显示什么

from tkinter import *  

win = Tk()
win.title('键盘事件') def key_action(event):
print( "pressed", repr(event.char))
s = event.char
txt.set(s) def callback(event):
L.focus_set() txt = StringVar()
L = Label(win, width=20, textvariable = txt, font = 'song -36 bold',bg = 'cyan')
L.bind("<KeyPress>", key_action)
L.bind("<Button-1>", callback)
L.pack() win.mainloop()

2、Tkinter绘图

Python Tkinter 画布(Canvas)组件和 html5 中的画布一样,都是用来绘图的。我们可以将图形,文本,小部件或框架放置在画布上。

语法格式:

w = Canvas ( master, option=value, ... )
  • master: 按钮的父容器。
  • options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。
可选项 &描述
bd 边框宽度,单位像素,默认为 2 像素。
bg 背景色
confine 如果为 true (默认), 画布不能滚动到可滑动的区域外。
cursor 光标的形状设定,如arrow, circle, cross, plus 等
height 高度
highlightcolor 要高亮的颜色
relief 边框样式,可选值为 FLAT、SUNKEN、RAISED、GROOVE、RIDGE。 默认为 FLAT。
scrollregion 一个元组 tuple (w, n, e, s) ,定义了画布可滚动的最大区域,w 为左边,n 为头部,e 为右边,s 为底部。
width 画布在 X 坐标轴上的大小。
xscrollincrement 用于滚动请求水平滚动的数量值。
xscrollcommand 水平滚动条,如果画布是可滚动的,则该属性是水平滚动条的 .set()方法。
yscrollincrement 类似 xscrollincrement, 但是垂直方向。
yscrollcommand 垂直滚动条,如果画布是可滚动的,则该属性是垂直滚动条的 .set()方法。
  • line − 创建线条
line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)
  • polygon − 创建一个至少有三个顶点的多边形
polygon = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)
  • oval − 创建一个圆 (很特别,画一个内切圆
oval = canvas.create_oval(x0, y0, x1, y1, options)

画个笑脸:

'''
窗体中的画布示例:
绘制笑脸
'''
import tkinter
import tkinter.messagebox
win = tkinter.Tk()
win.title('小丑smile')
win.geometry('250x250') can = tkinter.Canvas(win, height=250, width=250) #定义画布
io1 = can.create_oval(35,30,210,210, fill='yellow') #画一蓝色圆
io2 = can.create_oval(70,70,180,180, fill='green')
io3 = can.create_oval(65,70,185,170, outline='yellow', fill='yellow')
io4 = can.create_oval(80,100,110,130, fill='black')
io5 = can.create_oval(150,100,180,130, fill='purple') can.pack()
win.mainloop()

3、Turtle绘图

turtle名为海龟,其爬的路径就是画的图形。

绘图窗体:

空间坐标:

例如:

还是通过实例学习,自己在网上找了一个画西瓜的程序学习学习。

import turtle   #导入海龟模块库

#初始化画笔,设置画笔属性
t = turtle.Pen() #初始化画笔
t.pensize(10) #设置画笔的宽度 #瓜皮-绿色
t.begin_fill() #准备开始填充图形
t.fillcolor("green") #设置填充颜色为绿色
t.circle(400, extent = 30) #画一个半径400,角度为30的弧
t.goto(0, 400) #设置坐标(0, 400)
t.penup() #抬笔
t.home() #将位置和方向恢复到初始状态,位置初始坐标为(0,0)
t.pendown() #落笔
t.circle(400, extent = -30)#画一个半径400,反方向角度为30的弧
t.goto(0, 400) #设置坐标(0, 400)
t.end_fill() #填充完成 #果肉-红色
t.penup()#抬笔
t.goto(0, 50)#设置坐标(0, 50)
t.setheading(0) #把方向调为default(设置当前朝向为angle角度)
t.pendown()#落笔 t.be加粗样式gin_fill()#准备开始填充图形
t.fillcolor("red")#设置填充颜色为红色
t.circle(350, extent = 30)#画一个反方向半径350,角度为30的弧
t.goto(0, 400)#设置坐标(0, 400)
t.penup()#抬笔
t.goto(0, 50)#设置坐标(0, 50)
t.setheading(0) #把方向调为default(设置当前朝向为angle角度)
t.pendown()#落笔
t.circle(350, extent = -30)#画一个反方向半径350,角度为30的弧
t.goto(0, 400)#设置坐标(0, 400)
t.end_fill()#填充完成 #画西瓜子函数
def _dot(x, y, size): #一个设置西瓜子的函数
t.penup() #抬笔
t.goto(x, y)# 设置坐标(x, y)
t.pendown()# 落笔
t.dot(size)# 画一个size大小圆点 #瓜子
_dot(0, 300, 30) #调用_dot函数画西瓜子
_dot(50, 200, 30)
_dot(-50, 200, 30)
_dot(0, 100, 30)
_dot(100, 120, 30)
_dot(-100, 120, 30)

Python课程笔记(六)的更多相关文章

  1. Python学习笔记六

    Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime ti ...

  2. Python课程笔记(一)

    由于新冠状病毒的爆发,不得不在家里上网课,开课已经两个礼拜了,今天上完Python课后,准备整理一下最近学习Python的笔记. 人生苦短,我用Python 一.Hello World 初学一门新的语 ...

  3. python学习笔记六 面向对象相关下(基础篇)

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的 ...

  4. Python课程笔记(十)

    不陌生,之前学习一个开源SpringBoot项目,Mysql5.5更换到5.7搞得头疼. 数据库连接的坑之前写的IDEA系列连接会遇到的问题.课程代码 今天上课就主要学习了python如何连接mysq ...

  5. Python课程笔记(九)

    本次课程主要学习了Excel和JSON格式的一些读写操作.课程代码 一.Excel数据读写操作 1.安装模块 pip install xlrd pip install xlwt 网不好可以采用三方库: ...

  6. Python课程笔记(八)

    一些简单的文件操作,学过linux的话理解感觉不会很难.课程代码 一.OS 目录方法 这个模块提供了一种方便的使用操作系统函数的方法 函数 说明 os.mkdir("path") ...

  7. Python课程笔记 (五)

    今天主要学习图形用户界面,更多的还是要我们自己去实际操作,课仿佛上了一半就完了,分享一下课程(这里在SixthClass)的源码: https://gitee.com/wang_ming_er/pyt ...

  8. python学习笔记六 初识面向对象上(基础篇)

    python面向对象   面向对象编程(Object-Oriented Programming )介绍   对于编程语言的初学者来讲,OOP不是一个很容易理解的编程方式,虽然大家都知道OOP的三大特性 ...

  9. Python学习笔记六--文件和输入输出

    6.1文件对象 所有Python对文件的操作都是基于对文件对象的操作.那么就从文件对象的创建说起.open()[file()]提供初始化输入输出的接口.open()成功打开文件时会返回一个文件对象. ...

随机推荐

  1. xxl-job <=2.0.2 反序列化漏洞

    xxl-job <=2.0.2 反序列化漏洞 搭建 https://github.com/xuxueli/xxl-job/releases/tag/2.0.2 下载源码,导入idea,mysql ...

  2. 【Git】给不同目录配置不同的用户名和邮箱

    场景 使用 git 时,对于公司项目和个人项目想用不同的用户名和邮箱提交,简单的解决方式就是对 git 仓库单独配置 user.name 和 user.email: 直接修改当前仓库的 .git/co ...

  3. 手把手教你如何玩转消息中间件(ActiveMQ)

    手把手教你如何玩转消息中间件(ActiveMQ) 2018年07月15日 18:07:39 Cs_hnu_scw 阅读数 12270 标签: 中间件消息中间件ActiveMQ分布式集群 更多 个人分类 ...

  4. ☕【Java技术指南】「并发编程专题」针对于Guava RateLimiter限流器的入门到精通(含实战开发技巧)

    并发编程的三剑客 在开发高并发系统时有三剑客:缓存.降级和限流. 缓存 缓存的目的是提升系统访问速度和增大系统处理容量. 降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题 ...

  5. canal源码之BooleanMutex(基于AQS中共享锁实现)

    在看canal源码时发现一个有趣的锁实现--BooleanMutex 这个锁在canal里面多处用到,相当于一个开关,比如系统初始化/授权控制,没权限时阻塞等待,有权限时所有线程都可以快速通过 先看它 ...

  6. Linux系列(6) - 常见目录

    linux 一级目录有严格规定,脚本文件等放在root/home/tmp目录中,减少在根目录的操作 目录名称 作用 / 根目录 /bin 命令保存目录(普通用户就可以读取的命令); 根目录下的bin和 ...

  7. css宽度+字体+颜色+边框+文本+光标+伪类选择器

    常用属性: width:宽 height:高 min-width:最小宽度 :可以设置如果宽度变小了,有个滑动效果(常常在我们布局的过程中需要去设置) min-height;最小高度 max-widt ...

  8. Python测试框架对比----unittest, pytest, nose, robot framework对比

    什么是框架? 框架(Framework)是整个或部分系统的可重用设计, 框架是用来解决代码的组织及运行控制问题的. 在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求,记录日志, ...

  9. requestAnimationFrame 切换页面问题

    requestAnimationFrame 切换页面时, 之前定时的内容还会继续执行. 所以 要注意处理动画函数内容,否则会出现死循环. 遇到的问题: 我在两个页面都有使用 requestAnimat ...

  10. P4922-[MtOI2018]崩坏3?非酋之战!【dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4922 题目大意 题目好长直接放了 在崩坏 3 中有一个叫做天命基地的地方,女武神们将在基地中开派对与敌人们厮杀. ...