Python 2.7 将绑定事件传递到treeview的参数是否正确。是否在Tkinter中标识/标识\u区域?

Python 2.7 将绑定事件传递到treeview的参数是否正确。是否在Tkinter中标识/标识\u区域?,python-2.7,tkinter,treeview,ttk,Python 2.7,Tkinter,Treeview,Ttk,我有两个TreeView tkinter小部件。出于样式的目的,我需要防止在不完全禁用列大小调整的情况下手动调整treeview列宽度的大小 使用这里提供的一个可能的解决方案:我在列之间的分隔符上捕获单击事件,并在那里停止事件。为此,每个treeview都绑定了一个处理函数 例如: self.tree.bind('<Button-1>', lambda event: handle_treeview_single_click(self.tree, event)) def handle

我有两个TreeView tkinter小部件。出于样式的目的,我需要防止在不完全禁用列大小调整的情况下手动调整treeview列宽度的大小

使用这里提供的一个可能的解决方案:我在列之间的分隔符上捕获单击事件,并在那里停止事件。为此,每个treeview都绑定了一个处理函数

例如:

self.tree.bind('<Button-1>', lambda event: handle_treeview_single_click(self.tree, event))

def handle_treeview_single_click(tree, event):
    if tree.identify_region(event.x, event.y) == 'separator':
        return 'break'
无论我在标题、单元格或分隔符上单击什么对象,这都不会改变。例如,相关参数如下所示:

tree = Treeview: .42424440.47830640.47831440.47831800.47831840
x = 464 
y = 14

不确定我在这里遗漏了什么,因为我对python还比较陌生。

ttk源代码中有一条注释解释了为什么这可能不起作用:

def identify_region(self, x, y):
    """
    ...
    * Availability: Tk 8.6"""
    return self.identify("region", x, y)

因为您使用的是Python2.7,所以可能没有使用TK8.6。您可以通过打印Tkinter.TkVersion的值来验证这一点。我验证了版本,您完全正确。是8.5。非常感谢。我完全理解否决票背后的原因。从经验丰富的开发人员的角度来看,这可能看起来像一个愚蠢的问题。使用pycharm并将其作为缺乏经验的工具进行调试,仍然很难指出问题所在。我在这里发帖之前试了很多。指的是:也许你可以考虑一下。
def identify_region(self, x, y):
    """
    ...
    * Availability: Tk 8.6"""
    return self.identify("region", x, y)