Tkinter 之Canvas画布
一、参数说明
| 参数 | 作用 |
|---|---|
| background(bg) | 指定 Canvas 的背景颜色 |
| borderwidth(bd) | 指定 Canvas 的边框宽度 |
| closeenough | 指定一个距离,当鼠标与画布对象的距离小于该值时,鼠标被认为在画布对象上 该选项是一个浮点类型的值 |
| confine | 指定 Canvas 组件是否允许滚动超出 scrollregion 选项指定的范围 默认值是 True |
| cursor | 指定当鼠标在 Canvas 上飘过的时候的鼠标样式 |
| height | 指定 Canvas 的高度,单位是像素 |
| width | 指定 Canvas 的宽度 单位是像素 |
| highlightbackground | 指定当 Canvas 没有获得焦点的时候高亮边框的颜色 |
| highlightcolor | 指定当 Canvas 获得焦点的时候高亮边框的颜色 |
| highlightthickness | 指定高亮边框的宽度 |
| relief | 指定 Canvas 的边框样式 默认值是 "flat" 其他可以选择的值是 "sunken","raised","groove" 和 "ridge" |
| scrollregion | 指定 Canvas 可以被滚动的范围 该选项的值是一个 4 元组(x1, y1, x2, y2)表示的矩形 |
| selectbackground | 指定当画布对象被选中时的背景色 |
| selectborderwidth | 指定当画布对象被选中时的边框宽度(选中边框) |
| selectforeground | 指定当画布对象被选中时的前景色 |
| state | 设置 Canvas 的状态:"normal" 或 "disabled" 默认值是 "normal" 注意:该值不会影响画布对象的状态 |
| takefocus | 指定使用 Tab 键可以将焦点移动到输入框中 默认是开启的,可以将该选项设置为 False 避免焦点在此输入框中 |
| xscrollcommand | 与 scrollbar(滚动条)组件相关联(水平方向) |
| yscrollcommand | 与 scrollbar(滚动条)组件相关联(垂直方向) |
方法列表:
canvasx(screenx, gridspacing=None)
-- 将窗口坐标系的 X 坐标(screenx)转化为画布坐标系
-- 如果提供 gridspacing 参数,则转换结果将为该参数的整数倍
canvasy(screeny, gridspacing=None)
-- 将窗口坐标系的 Y 坐标(screenx)转化为画布坐标系
-- 如果提供 gridspacing 参数,则转换结果将为该参数的整数倍
create_arc(bbox, **options)
-- 根据 bbox (x1, y1, x2, y2) 创建一个扇形("pieslice")、弓形("chord")或弧形("arc")
-- 新创建的画布对象位于显示列表的顶端
-- 创建成功后返回该画布对象的 ID
create_bitmap(position, **options)
-- 在 position 指定的位置(x, y)创建一个位图对象
-- 创建成功后返回该位图对象的 ID
create_image(position, **options)
-- 在 position 指定的位置(x, y)创建一个图片对象
-- 创建成功后返回该图片对象的 ID
create_line(coords, **options)
-- 根据 coords 给定的坐标创建一条或多条线段
-- 如果给定的坐标多余两个点,则会首尾相连变成一条折线
-- 创建成功后返回该画布对象的 ID
create_oval(bbox, **options)
-- 根据限定矩形 bbox 绘制一个椭圆
-- 新创建的画布对象位于显示列表的顶端
-- 创建成功后返回该画布对象的 ID
create_polygon(coords, **options)
-- 根据 coords 给定的坐标绘制一个多边形
-- 新创建的画布对象位于显示列表的顶端
-- 创建成功后返回该画布对象的 ID
create_rectangle(bbox, **options)
-- 根据限定矩形 bbox 绘制一个矩形
-- 新创建的画布对象位于显示列表的顶端
-- 创建成功后返回该画布对象的 ID
create_text(position, **options)
-- 在 position 指定的位置(x, y)创建一个文本对象
-- 创建成功后返回该文本对象的 ID
create_window(position, **options)
-- 在 position 指定的位置(x, y)创建一个窗口组件
-- 创建成功后返回该窗口组件的 ID
二、示例代码
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
import tkinter as tkwindow = tk.Tk()# 设置窗口大小winWidth = 600winHeight = 400# 获取屏幕分辨率screenWidth = window.winfo_screenwidth()screenHeight = window.winfo_screenheight()x = int((screenWidth - winWidth) / 2)y = int((screenHeight - winHeight) / 2)# 设置主窗口标题window.title("Canvas菜单参数说明")# 设置窗口初始位置在屏幕居中window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))# 设置窗口图标window.iconbitmap("./image/icon.ico")# 设置窗口宽高固定window.resizable(0, 0)canvas = tk.Canvas(window, width=200, height=200, bg="#fff")canvas.pack();# 画一条线canvas.create_line(0, 100, 200, 100, fill="#f00")# 画一个矩形canvas.create_rectangle(50, 50, 150, 150, fill="blue")# 画一个椭圆canvas.create_oval(60, 60, 140, 140, fill="red")# 画文字canvas.create_text(100, 100, text = "python", fill="#fff")window.mainloop() |
三、效果图

