python tkinter 利用canvas,创建treeview时,添加对应的checkbutton多选按钮,而且鼠标滚轮对应整个界面

本文介绍如何利用Python的Tkinter库,结合Canvas组件,创建一个具有Checkbutton多选功能的TreeView控件。同时,我们将实现鼠标滚轮在整个界面中生效,提供更流畅的操作体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次是要求treeview的每一行对应一个多选按钮,
    功能:1.勾选按钮,tree对应的行就会改变颜色
          2.点击tree的行,按钮也相应的被打勾
          3.全选按钮会根据 下面多选按钮的情况,改变状态!
          
    代码要点:1.操作滚动条时,对应移动的是tree+按钮,所以得用canvas,还得设定<MouseWheel>!!
             2.因为是tree整体滚动,所得还得另外设定一个头(label) PS:如果能把tree的heading去掉就更好了!
             3.格式问题===得设定tree每一行的高度,跟button相同;
                          设定tree的字体,还有背景颜色
                          设定canvas的高度随tree高度而改变
             4.按钮跟tree的行对应,匹配,设定回调函数
             5.tree的每一项被选中时,就改变其颜色
from tkinter import *
from tkinter.ttk import *
class My_Tk():
    def __init__(self):
        self.tk=Tk()
        self.tk.geometry('620x400')
        self.orm={}
        self.create_button()
        self.create_heading()
        self.create_tv()

        mainloop()
    def create_button(self):
        Button(self.tk,text='增加数据',command=self.insert_tv).pack()

    def create_heading(self,):
        '''重新做一个treeview的头,不然滚动滚动条,看不到原先的头!!!'''
        heading_frame=Frame(self.tk)
        heading_frame.pack(fill=X)

        #填充用
        button_frame=Label(heading_frame,width=0.5)
        button_frame.pack(side=LEFT,)
        #全选按钮
        self.all_buttonvar = IntVar()
        self.all_button = Checkbutton(heading_frame, text='',variable=self.all_button
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值