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 tk window = tk.Tk() # 设置窗口大小 winWidth = 600 winHeight = 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() |
三、效果图