禁用tkinter小部件的焦点?

时间:2016-09-26 13:08:20

标签: python button tkinter focus

如何制作一个在tkinter中无法获得焦点的小部件? 例如,一个按钮,当我按TAB时,焦点将跳过他

2 个答案:

答案 0 :(得分:4)

找到了一些时间提供工作示例;)

import Tkinter
import tkMessageBox

root = Tkinter.Tk()

but1 = Tkinter.Button(root, text ="Button 1")
but1.pack()

butNoFocus = Tkinter.Button(root, text ="Button no focus", takefocus = 0)
butNoFocus.pack()

but2 = Tkinter.Button(root, text ="Button 2")
but2.pack()

root.mainloop()

takefocus选项设置为0将禁用选中对焦创建按钮。

答案 1 :(得分:0)

我知道这是一个老问题,但对于任何未来的读者来说,消除小部件循环焦点的更简单方法是解除绑定 <<NextWindow>>,正如 Bryan Oakley 在 this post 中所述.

import tkinter as tk

root = tk.Tk()

button1 = tk.Button(root, text='Hello')  # Two example buttons
button2 = tk.Button(root, text='World!')

button1.pack(ipadx=15, ipady=10)
button2.pack(ipadx=10, ipady=10)

root.unbind_all('<<NextWindow>>')  # Unbinding the behavior that causes Tab Cycling
root.mainloop()

这将禁用使用 Tab 循环所有小部件,如果您想删除单个小部件的循环焦点,将 -takefocus 设置为 0 会更容易