Tkintercanvas的画布参数,删除组件,添加垂直滚动条详解⽬录
1、画布 Canvas的参数
2、删除⿏标下的组件
3、带垂直滚动条的画布
总结
1、画布 Canvas的参数
from tkinter import *
win = Tk()
canvas = Canvas(
master=win,  # ⽗控件
bg='orange',  # 背景颜⾊
bd=2,  # 边框宽度
closeenough=1,  # 当⿏标与画布上组件的距离⼩于该值时,认为⿏标在该组件上,是⼀个浮点型的值
cursor='circle',  # ⿏标飘过的样式
height=300,  # 画布的⾼
width=300,  # 画布的宽
highlightbackground='blue',  # 没有获得焦点时⾼亮边框的颜⾊
highlightcolor='red',  # 获得焦点时⾼亮边框的颜⾊
highlightthickness=5,  # ⾼亮边框的宽度
relief='groove',  # 边框的样式 flat, groove, raised, ridge, solid, or sunken
state='normal',  # 状态 normal or disabled
scrollregion=(0, 0, 400, 400),  # 画布可以被滚动的范围win10滚动条设置
confine=True,  # 画布是否允许滚动超出 scrollregion 选项指定的范围
selectbackground='yellow',  # 画布对象被选中时的背景颜⾊
selectborderwidth=10,  # 画布对象被选中时的边框宽度
takefocus=True,  # 使⽤ Tab 键是否可以将焦点移动到输⼊框中
yscrollcommand=None,  # 设置垂直滚动条,⼀般与滚动条相关联使⽤
yscrollincrement=1,  # 设置垂直滚动条的步长
xscrollcommand=None,  # 设置⽔平滚动条,⼀般与滚动条相关联使⽤
xscrollincrement=1,  # 设置⽔平滚动条的步长
)
canvas.pack(pady=50)
Button(win, text='按钮').pack()
win.mainloop()
2、删除⿏标下的组件
from tkinter import *
def event(w):
#  current 表⽰删除⿏标下的组件
canvas.delete('current')
win = Tk()
canvas = Canvas(win)
canvas.pack(fill=BOTH, expand=True)
# 画实线,填充橙⾊,设置宽度为10
for i in range(10, 200, 20):
canvas.bind('<Button-1>', event)
win.mainloop()
3、带垂直滚动条的画布
from tkinter import *
def event2():
for i in range(0, 220):
# 绘制实线,填充粉⾊,设置宽度为10
for i in range(230, 300):
# 绘制实线,填充蓝⾊,设置宽度为50
def event1(event):
"""
事件的属性 delta 解析
在MouseWheel 事件中,正值代表上卷,负值代表下卷;
在 Window 下,通常是 120 的倍数;在 MacOS 下,为 1 的倍数
"""
number = int(-event.delta / 120)
canvas.yview_scroll(number, 'units')
win = Tk()
frame = Frame(win)
sv = Scrollbar(frame)  # 定义垂直滚动条
sv.pack(side=RIGHT, fill=Y)  # 放置垂直滚动条在最右侧,占满Y轴
canvas = Canvas(frame, bd=2, bg='orange', relief='groove')
canvas.pack()
frame.pack(pady=50)
canvas.bind("<MouseWheel>", event1)  # 添加滚轮事件
Button(text='为画布添加组件', command=event2).pack()
event2()
win.mainloop()
总结
本篇⽂章就到这⾥了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。