Python GUI编程(Tkinter) - 【画布组件,Canvas】
[p=30, 2, left]Python Tkinter 画布(Canvas)组件和 html5 中的画布一样,都是用来绘图的。您可以将图形,文本,小部件或框架放置在画布上。[/p]语法
[p=30, 2, left]语法格式如下:[/p][code]w = Canvas ( master, option=value, ... )[/code][list][*]
master: 按钮的父容器。[*]
options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。[/list][table=98%]
[tr][td]序号[/td][td]可选项 & 描述[/td][/tr]
[tr][td]1[/td][td]
[b]bd[/b]
边框宽度,单位像素,默认为 2 像素。[/td][/tr]
[tr][td]2[/td][td]
[b]bg[/b]
背景色[/td][/tr]
[tr][td]3[/td][td]
[b]confine[/b]
如果为 true (默认), 画布不能滚动到可滑动的区域外。[/td][/tr]
[tr][td]4[/td][td]
[b]cursor[/b]
光标的形状设定,如arrow, circle, cross, plus 等[/td][/tr]
[tr][td]5[/td][td]
[b]height[/b]
高度[/td][/tr]
[tr][td]6[/td][td]
[b]highlightcolor[/b]
要高亮的颜色[/td][/tr]
[tr][td]7[/td][td]
[b]relief[/b]
边框样式,可选值为 FLAT、SUNKEN、RAISED、GROOVE、RIDGE。 默认为 FLAT。[/td][/tr]
[tr][td]8[/td][td]
[b]scrollregion[/b]
一个元组 tuple (w, n, e, s) ,定义了画布可滚动的最大区域,w 为左边,n 为头部,e 为右边,s 为底部。[/td][/tr]
[tr][td]9[/td][td]
[b]width[/b]
画布在 X 坐标轴上的大小。[/td][/tr]
[tr][td]10[/td][td]
[b]xscrollincrement[/b]
用于滚动请求水平滚动的数量值。[/td][/tr]
[tr][td]11[/td][td]
[b]xscrollcommand[/b]
水平滚动条,如果画布是可滚动的,则该属性是水平滚动条的 .set()方法。[/td][/tr]
[tr][td]12[/td][td]
[b]yscrollincrement[/b]
类似 xscrollincrement, 但是垂直方向。[/td][/tr]
[tr][td]13[/td][td]
[b]yscrollcommand[/b]
垂直滚动条,如果画布是可滚动的,则该属性是垂直滚动条的 .set()方法。[/td][/tr]
[/table] [p=30, 2, left][b]Canvas 组件支持以下标准选项:[/b][/p][p=30, 2, left]arc − 创建一个扇形[/p][code]coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")[/code][p=30, 2, left]image − 创建图像[/p][code]filename = PhotoImage(file = "sunshine.gif")
image = canvas.create_image(50, 50, anchor=NE, image=filename)[/code][p=30, 2, left]line − 创建线条[/p][code]line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)[/code][p=30, 2, left]oval − 创建一个圆[/p][code]oval = canvas.create_oval(x0, y0, x1, y1, options)[/code][p=30, 2, left]polygon − 创建一个至少有三个顶点的多边形[/p][code]oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)[/code] 实例
实例中点击按钮会显示一个信息:
实例[code]#!/usr/bin/python
# -*- coding: UTF-8 -*-
import Tkinter
import tkMessageBox
# -*- coding: cp936 -*-
# 创建一个矩形,指定画布的颜色为白色
from Tkinter import *
root = Tk()
# 创建一个Canvas,设置其背景色为白色
cv = Canvas(root,bg = 'white')
# 创建一个矩形,坐标为(10,10,110,110)
cv.create_rectangle(10,10,110,110)
cv.pack()
root.mainloop()
# 为明显起见,将背景色设置为白色,用以区别 root
top.mainloop()[/code]测试输出结果如下:
[img]http://p.algo2.net/2024/0313/e5d59559b3cd3.png[/img]
页:
[1]