当前位置:   article > 正文

关于在tkinter treeview选中的单元格添加combobox,并在意外的鼠标操作情况下消除combobox的方法_tkinter treeview添加复选框

tkinter treeview添加复选框
"""
主要实现treeview单个单元格内容在给定的范围内进行修改, 并对实现效果进行美化
"""

import tkinter as tk
from tkinter import ttk

def set_cell_combobox(event, value):
    def change_value(_):
        combobox.destroy()
        old_value[col] = combobox_var.get()
        tree.item(row, value=old_value)

    def leave(e):
        """当鼠标点击combobox的箭头时,也被认为是离开控件,所以要对离开事件进行区分"""
        if e.state == 8:
            combobox.destroy()
        else:
            combobox.unbind('<FocusOut>')

    def focusout(_):
        """当combobox的列表被打开,并且没有选取任何选项,此时光标会自动回到combobox控件,可以利用combobox的这个特性,当光标回到控件时,自动获得此方法"""
        combobox.bind('<FocusOut>', lambda _: combobox.destroy())

    column = tree.identify_column(event.x)
    row = tree.identify_row(event.y)
    col = int(column.split('#')[1]) - 1
    old_value = list(tree.item(row, 'value'))
    cell_coord = tree.bbox(row, col
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号