首页 > 解决方案 > tkinter notebook python - 单击左事件

问题描述

我想在单击选项卡时运行功能。

例如,我有两个标签

def refresh():
    if str(notebook.index(notebook.select())) == "2":
        refresh2()
    else:
        refresh1()

notebook.bind("<<NotebookTabChanged>>", refresh())

不工作。我该如何解决?

标签: pythonpython-3.xtkinter

解决方案


你总是需要提供函数的引用,而不是调用函数。做refresh()会调用函数。并且当函数执行时,返回的值将被赋值。在你的情况下,它是None或没有。

因此,您基本上是在告诉在引发事件tkinter时什么都不做。"<<NotebookTabChanged>>"

def refresh():
    if str(notebook.index(notebook.select())) == "2":
        refresh2()
    else:
        refresh1()

notebook.bind("<<NotebookTabChanged>>", refresh)

推荐阅读