Python tkinter -- 第18章 画布控件属性

第18章 画布控件

画布控件,顾名思义就是创建一个空白的画布,可以在上面画图或者添加其它控件。
画布控件支持如下图形:
圆弧(arc ,包括圆弧、弦、扇形)
位图(bitmap )
图像(image )
直线(line)(绘制直线,箭头)
圆系列(oval )(绘制圆或者椭圆)
多边形(polygon)(绘制多边形)
矩形(rectangle)(绘制矩形)
文本(text)(绘制文本)
窗口(window)(绘制窗口)

18.1 属性

属性 描述
background
bg
画布控件的背景颜色
borderwidth
bd
画布控件的边框宽度。默认是1-2个像素。
closeenough 指定一个数值,当鼠标与画布对象的距离小于该值时,鼠标被认为在画布对象上。该选项是一个浮点类型的值,默认值是1.0
confine 指定画布组件是否允许滚动超出 scrollregion 选项指定的范围,为True的时候不允许。默认值是 True
height 画布控件的高度
highlightbackground 没有输入焦点时的高亮边框背景颜色
highlightcolor 获得输入焦点时的高亮边框背景颜色
highlightthickness 高亮边框的宽度
relief 画布控件的3D效果。
默认值是 FLAT,其他可选值是 SUNKEN,RAISED,GROOVE 和 RIDGE
scrollregion 由元组(x1,y1,x2,y2)定义的一个四元组。该四元组与Canvas的宽w与高h,以及画布上所有控件最小的x坐标与最大的y坐标一同计算的区域。具体的公式为:
XL=x1-x
YT=y1-y
XR=w-x2+x
YB=h-y2+y
如果Canvas在窗口中的左上角坐标不是(0,0),还需要加上Canvas的左上角坐标
selectbackground 选中画布中的元素时,相应的背景色
selectborderwidth 选中画布中的元素时,边框的宽度
selectforeground 选中画布中的元素时,相应的前景色
state 设置画布的状态:NORMAL 或 DISABLED,默认值是 NORMAL。
takefocus 定义是否可以通过Tab键获得输入焦点
width 定义画布控件的宽度
xscrollincrement 该选项指定画布水平滚动的“步长”,例如 ‘3c’ 表示 3 厘米,还可以选择的单位有 ‘i’(英寸),‘m’(毫米)和 ‘p’(DPI,大约是 ‘1i’ 等于 ‘72p’)。
默认值是 0,表示可以水平滚动到任意位置
xscrollcommand 设置控制水平滚动的回调函数
yscrollincrement 类似于xscrollincrement 参数,不过是控制垂直滚动的粒度
yscrollcommand 设置控制垂直滚动的回调函数
18.1.1 background(bg)
定义画布控件的背景颜色。
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='blue')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件属性_第1张图片
18.1.2 borderwidth(bd)
定义画布控件边框的宽度。需要和relief选项一起,才有作用。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='blue',
             bd=10,relief='groove')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件属性_第2张图片
18.1.3 closeenough
定义鼠标距离画布控件中的元素多近就会被认为是位于该元素之内或者之上。是一个浮点数。默认值是1.0。
18.1.4 confine
指定画布组件是否允许滚动超出 scrollregion 选项指定的范围。
18.1.5 cursor
设定鼠标在画布控件之内的形状。
18.1.6 height
设定画布控件的高度。默认单位是像素。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='blue',
             width=200,height=200,
             bd=10,relief='groove')
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件属性_第3张图片
18.1.7 highlightbackground、highlightcolor和highlightthickness
设置有输入焦点、无输入焦点的边框背景颜色。需要设置takefocus=True。因为默认情况下,画布控件不能通过Tab获得输入焦点。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root,bg='green',
             width=200,height=200,
             highlightbackground='blue',
             highlightcolor='red',
             highlightthickness=10,
             takefocus=1)
b1.pack()
root.mainloop()

结果:
Python tkinter -- 第18章 画布控件属性_第4张图片
Python tkinter -- 第18章 画布控件属性_第5张图片
18.1.8 relief
画布控件的3D效果,见第3.3.5节说明。
18.1.9 scrollregion
由元组(x1,y1,x2,y2)定义的一个四元组。该四元组与Canvas的宽w与高h,以及画布上所有控件最小的x坐标与最大的y坐标一同计算的区域。具体的公式为:
XL=x1-x
YT=y1-y
XR=w-x2+x
YB=h-y2+y
如果Canvas在窗口中的左上角坐标不是(0,0),还需要加上Canvas的左上角坐标
18.1.10 takefocus
定义是否可以通过Tab键让画布控件获得输入焦点。
18.1.11 width
定义画布控件的宽度(x方向上)。默认单位像素。
18.1.12 xscrollincrement
定义画布控件水平滚动的粒度。如果是0,表示可以滚动到任意的位置。如果是一个正数,只能滚动到该数值整数倍的位置上。
18.1.13 xscrollcommand
控制水平滚动的回调函数。一般是设置为控件的 .set()方法。参见前面其他章节关于水平滚动条的说明。
18.1.14 yscrollincrement
定义画布控件垂直滚动的粒度。参见xscrollincrement。
18.1.15 yscrollcommand
控制垂直滚动的回调函数。一般是设置为控件的 .set()方法。参见前面其他章节关于垂直滚动条的说明。

你可能感兴趣的:(Python,tkinter,Python,tkinter)