Tkinter canvas的画布参数,删除组件,添加垂直滚动条详解

 更新时间:2021年10月11日 16:29:46   作者:南风丶轻语  
这篇文章主要介绍了python tkinter 画布参数,删除组件,添加垂直滚动条使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1、画布 Canvas的参数

from tkinter import *
win = Tk()
win.geometry('500x500+500+100')
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),  # 画布可以被滚动的范围
        confine=True,  # 画布是否允许滚动超出 scrollregion 选项指定的范围
        selectbackground='yellow',  # 画布对象被选中时的背景颜色
        selectborderwidth=10,  # 画布对象被选中时的边框宽度
        takefocus=True,  # 使用 Tab 键是否可以将焦点移动到输入框中
        yscrollcommand=None,  # 设置垂直滚动条,一般与滚动条相关联使用
        yscrollincrement=1,  # 设置垂直滚动条的步长
        xscrollcommand=None,  # 设置水平滚动条,一般与滚动条相关联使用
        xscrollincrement=1,  # 设置水平滚动条的步长
        )
canvas.pack(pady=50)
canvas.create_window((100, 100), window=Entry(canvas))
Button(win, text='按钮').pack()
win.mainloop()

在这里插入图片描述

2、删除鼠标下的组件

from tkinter import *

def event(w):
    #  current 表示删除鼠标下的组件
    canvas.delete('current')

win = Tk()
win.geometry('500x500+500+100')
canvas = Canvas(win)
canvas.pack(fill=BOTH, expand=True)
# 画实线,填充橙色,设置宽度为10
for i in range(10, 200, 20):
    canvas.create_line(i, 100, i, 200, width=10, fill='orange')
#  绑定鼠标左键点击事件
canvas.bind('<Button-1>', event)
win.mainloop()

在这里插入图片描述

3、带垂直滚动条的画布

from tkinter import *

def event2():
    for i in range(0, 220):
        # 绘制实线,填充粉色,设置宽度为10
        canvas.create_line(0, i, 100, i, fill='pink', width=10)
    for i in range(230, 300):
        # 绘制实线,填充蓝色,设置宽度为50
        canvas.create_line(0, i, 100, i, fill='blue', width=50)

def event1(event):
    """
    事件的属性 delta 解析
    在MouseWheel 事件中,正值代表上卷,负值代表下卷;
    在 Window 下,通常是 120 的倍数;在 MacOS 下,为 1 的倍数
    """
    number = int(-event.delta / 120)
    canvas.yview_scroll(number, 'units')

win = Tk()
win.geometry('500x500+500+100')
frame = Frame(win)
sv = Scrollbar(frame)  # 定义垂直滚动条
sv.pack(side=RIGHT, fill=Y)  # 放置垂直滚动条在最右侧,占满Y轴
canvas = Canvas(frame, bd=2, bg='orange', relief='groove')
canvas.pack()
canvas.config(yscrollcommand=sv.set)  # 设置画布的Y轴滚动条函数与垂直滚动条绑定
canvas.config(scrollregion=(0, 0, 300, 800))  # 设置画布可以滚动的范围
sv.config(command=canvas.yview)  # 设置垂直滚动条的函数与画布的Y轴滚动条事件绑定
frame.pack(pady=50)
canvas.config(yscrollincrement=1)  # 设置滚动条的步长
canvas.bind("<MouseWheel>", event1)  # 添加滚轮事件
Button(text='为画布添加组件', command=event2).pack()
event2()
win.mainloop()

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Python3 基础语法详解

    Python3 基础语法详解

    在本篇文章里小编给大家分享的是一篇关于Python3基础语法知识点总结内容,有兴趣的朋友们可以学习下,希望能够给你带来帮助
    2021-10-10
  • Python subprocess库六个实例快速掌握

    Python subprocess库六个实例快速掌握

    这次来说Python的第三方库subprocess库,在python2.4以上的版本commands模块被subprocess取代了。一般当我们在用Python写运维脚本时,需要履行一些Linux shell的命令,Python中subprocess模块就是专门用于调用Linux shell命令,并返回状态和结果,可以完美的解决这个问题
    2022-10-10
  • python判断一个集合是否为另一个集合的子集方法

    python判断一个集合是否为另一个集合的子集方法

    下面小编就为大家分享一篇python判断一个集合是否为另一个集合的子集方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python中如何利用matplotlib画多个并列的柱状图

    python中如何利用matplotlib画多个并列的柱状图

    python是一个很有趣的语言,可以在命令行窗口运行,下面这篇文章主要给大家介绍了关于python中如何利用matplotlib画多个并列的柱状图的相关资料,需要的朋友可以参考下
    2022-01-01
  • Python + Chrome抓取AJAX动态数据的两种方法

    Python + Chrome抓取AJAX动态数据的两种方法

    在现代 Web 开发中,AJAX技术被广泛应用于动态加载数据,使得网页能够在不刷新的情况下更新内容,本文将详细介绍 Python + Chrome 如何抓取 AJAX 动态数据,并提供两种方法的完整实现代码,需要的朋友可以参考下
    2025-04-04
  • python用分数表示矩阵的方法实例

    python用分数表示矩阵的方法实例

    这篇文章主要给大家介绍了关于python如何利用分数表示矩阵的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python中ASCII码字符与int之间的转换方法

    python中ASCII码字符与int之间的转换方法

    今天小编就为大家分享一篇python中ASCII码字符与int之间的转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python之根据输入参数计算结果案例讲解

    Python之根据输入参数计算结果案例讲解

    这篇文章主要介绍了Python之根据输入参数计算结果案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Python VTK映射三维模型表面距离

    Python VTK映射三维模型表面距离

    这篇文章主要介绍了Python VTK映射三维模型表面距离,通过如何使用VTK读取图片计算两个三维模型(stl)的表面距离,并将其距离值映射到模型上展开主题,需要的朋友可以参考一下
    2022-04-04
  • python对常见数据类型的遍历解析

    python对常见数据类型的遍历解析

    这篇文章主要介绍了python对常见数据类型的遍历解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08

最新评论