趣学Python-教孩子学编程--第十二章

知识点:

高级制图模块——tkinter

1、创建一个可以点的按钮


from tkinter import *
''' import turtle
    t = turtle.Pen()
    和
    from turtle import *
    t = Pen()
    两者等价   '''
tk = Tk()
def hello():
    print('hello there')

btn = Button(tk,text = "click me",command = hello)
# text后面是显示在按钮上的图片
btn.pack()
# btn.pack()代表结束,还让屏幕上的每个东西都排列好
运行和出现如图所示的按钮,然后点击一下按钮,调用一下hello函数,然后输出依次 hello there


2、具名参数

      普通参数    person(4,3)

      具名参数    person(height = 3,width = 4)


3、创建一个画图用的画布

from tkinter import*
tk = Tk()
canvas = Canvas(tk,width = 500,height = 500)
canvas.pack()


4、在Python中,X坐标从左往右为正,Y坐标从上往下为正

5、在Python中,画矩形给出左上角和右下角坐标即可。

from tkinter import*
tk = Tk()
canvas = Canvas(tk,width = 500,height = 500)
canvas.pack()
canvas.create_rectangle(10,10,50,50)
# 坐标依次为 x(左上角)、y(左上角)、x(右下角)、y(右下角)


6、设置颜色

canvas.create_rectangle(10,10,50,50,fill = '#ffd800')
fill也可以fill = ‘pink’
tkinter也可以调用颜色选择器:

from tkinter import*
colorchooser.askcolor()



选择好颜色之后点击确定,会返回一个元组

((235.91796875,86.3359375,153.59765625),'#eb5699')

分别是RGB的各颜色百分比,和这个颜色的十六进制版本。

所以也可以这样调用

c = colorchooser.askcolor()
canvas.create_rectangle(10,10,50,50,fill = c[1])


7、画圆弧

from tkinter import*
tk = Tk()
canvas = Canvas(tk,width = 400,height = 400)
canvas.pack()
canvas.create_arc(10,10,200,100,extent = 180,style = ARC)
# 前四个数字是包含圆弧的矩形的坐标(左上角和右下角的坐标)
# extent的值是圆弧的角度
# style = ARC指定是圆弧
#若要画完整的椭圆,extent应该为359而不是360,因为Python把360度当成0度



8、画多边形

from tkinter import*
tk =Tk()
canvas = Canvas(tk,width = 400,height = 400)
canvas.pack()
canvas.create_polygon(200,10,240,30,120,100,140,120,fill = '',outline = 'black')
Python依次将(200,10)、(240,30)、(120,100)、(140,120)四个点相连接。

即画多边形的时候Python依次将给定的点按顺序串联。

fill = '颜色'  :定义了图形的内色

outline = '颜色'  :定义了图形边的颜色



9、显示文字

from tkinter import*
tk = Tk()
canvas = Canvas(tk,width = 400,height = 400)
canvas.pack()

canvas.create_text(200,200,text = '欢迎来到Python的世界',fill = 'red',font = ('Times',15))
前两个数字是文字的坐标,不是文字开始的坐标,而是文字中心的坐标。

text = '文字内容'告诉Python输出的文字是什么内容

fill = '颜色'输出文字的颜色

font = ('字体类型',字体大小)定义文字的字形和大小




10、显示图片

tkinter只能显示GIF图片,若要显示其他类型的图片需要用到Python图像库

from tkinter import*
tk = Tk()
canvas = Canvas(tk,width = 400,height = 400)
canvas.pack()

my_image = PhotoImage(file = 'c:\\test.gif')
canvas.creat_image(0,0,anchor = NW,image = my_image)
file = '图片地址'

前两个数字是图片的坐标

anchor = NW让函数使用左上角作为画图的起始点(否则以中心为起始)

11、创建基本动画

import time
from tkinter import*
tk =Tk()
canvas = Canvas(tk,width = 400,height = 400)
canvas.pack()

canvas.create_polygon(10,10,10,60,50,50)
# 创建一个三角形
for x in range(0,60):
    canvas.move(1,5,0)
# 把ID为1的对象横移5个像素,纵移0个像素
    tk.update()
# 强制tkinter更新屏幕(重画)
    time.sleep(0.05)
# 保证图像不会一闪而过

12、让对象对操作有反应

用“消息绑定”来让三角形在有人按下某键时有反应。

让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):
    if event.keysym == 'Up':
        canvas.move(1,0,-3)
    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)
canvas.bind_all('<KeyPress-Down>',movetriangle)
canvas.bind_all('<KeyPress-Left>',movetriangle)
canvas.bind_all('<KeyPress-Right>',movetriangle)
传入movetriangle的event对象中包含了几个变量,其中一个变量叫做keysym,它是一个字符串,包含了实际按键的值。


13、返回ID

只要用了画布上面以create_开头的函数,总会返回一个ID,这个编号可以在其他画布函数中使用。

mytriangle = canvas.create_polygon(10,10,10,60,50,35)
将所画三角形的ID赋值给变量mytriangle


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值