我想将“Enter”键仅绑定到其中一个选项卡,这是示例代码
from tkinter import *
from tkinter import ttk
def hello(event):
print('hello')
window = Tk()
window.geometry('500x500')
tab_control = ttk.Notebook(window)
tab_1 = ttk.Frame(tab_control)
tab_2 = ttk.Frame(tab_control)
tab_control.add(tab_1, text='Tab 1')
tab_control.add(tab_2, text='Tab 2')
tab_control.pack(expand=1, fill='both')
window.bind('<Return>', hello)
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
window.bind()将允许用户在两个选项卡中运行hello()功能。但我只想将它绑定到tab_1.
我尝试过tab_1.bind('<Return>', hello),但两个选项卡中都没有任何响应。
使用<<NotebookTabChanged>>事件获取活动选项卡,然后为您的应用程序绑定事件:
from tkinter import *
from tkinter import ttk
def hello(event=None):
print("hello")
def e(event=None):
if tab_control.index(tab_control.select()) == 0: # bind event for the first tab.
window.bind("<Return>", hello)
else:
window.unbind("<Return>")
window = Tk()
window.geometry('500x500')
tab_control = ttk.Notebook(window)
tab_1 = ttk.Frame(tab_control)
tab_2 = ttk.Frame(tab_control)
tab_control.add(tab_1, text='Tab 1')
tab_control.add(tab_2, text='Tab 2')
tab_control.pack(expand=1, fill='both')
window.bind('<<NotebookTabChanged>>', e)
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |