今天,我为大家带来的是Python下 Tkinter 模块中的 Canvas(画布)
Canvas是一个长方形的面积,图画或其他复杂的布局。可以放置在画布上的图形,文字,部件,或是帧.
语法:
这里是一个简单的语法来创建这个widget:
w = Canvas ( master, option=value, ... )
参数:
master: 这代表了父窗口.
options: 下面是这个小工具最常用的选项列表。这些选项可以作为键 - 值对以逗号分隔.
常用的有:height(高),
width(宽),
bg(背景颜色)
bd(边框宽度为像素。默认值是2)
Canvas的widget可以支持以下标准的条目:
arc .创建弧项目,它可以是一个和弦,饼图扇区,或是一个简单的弧.
coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")
image . 创建一个图像的项目,它可以是位图图像或是照片图像类的一个实例.
filename = PhotoImage(file = "sunshine.gif")
image = canvas.create_image(50, 50, anchor=NE, image=filename)
line . 创建一条线条目.
line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)
oval . 在给定的坐标创建一个圆或椭圆。它的坐标两双。为椭圆的边界矩形左上角和底部右下角.
oval = canvas.create_oval(x0, y0, x1, y1, options)
polygon . 创建一个多边形的项目,必须有至少三个顶点.
oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)
例子:
自行尝试下面的例子:
import tkinter top = tkinter.Tk() C = tkinter.Canvas(top, bg="blue", height=250, width=300) coord = 10, 50, 240, 210 arc = C.create_arc(coord, start=0, extent=150, fill="red") C.pack() top.mainloop()
这将产生以下结果:
在此,我附上我写的一个小dome:
#!/usr/bin/python3.6 # -*- coding: UTF-8 -*- from tkinter import * #导入 Tkinter 库 import time #导入time模块 tk = Tk() # 创建窗口对象的背景色 #创建一个宽为400,高为400,背景为蓝色色的画布 canvas = Canvas(tk,width=400,height=400,bg="blue") canvas.pack() #创建一个圆形 id = canvas.create_oval(10,10,100,100,fill="red") def re(event): if event.keysym == "w": canvas.move(1,0,-1) canvas.itemconfig(id, fill="yellow") elif event.keysym == "s": canvas.move(1, 0, 1) canvas.itemconfig(id, fill="green") elif event.keysym == "a": canvas.move(1,-1,0) canvas.itemconfig(id, fill="black") elif event.keysym =="d": canvas.move(1,1,0) canvas.itemconfig(id, fill="red") canvas.bind_all('<KeyPress-a>',re) #键盘按下a向左移动,并变化颜色(黄色) canvas.bind_all('<KeyPress-s>',re) #键盘按下s向下移动,并变化颜色(绿色) canvas.bind_all('<KeyPress-w>',re) #键盘按下w向上移动,并变化颜色(黑色) canvas.bind_all('<KeyPress-d>',re) #键盘按下d向右移动,并变化颜色(红色) tk.mainloop()