【问题标题】:Disable focus for tkinter widgets?禁用 tkinter 小部件的焦点?
【发布时间】:2016-09-26 13:08:19
【问题描述】:

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

【问题讨论】:

  • 请提供一些示例代码,或尝试进一步解释您的问题,并准确指出出错的位置和时间。

标签: python button tkinter focus


【解决方案1】:

我找到了一些时间来提供一个工作示例:

import tkinter

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 将禁用butNoFocus 上的标签焦点。

【讨论】:

    【解决方案2】:

    我知道这是一个老问题,但对于任何未来的读者来说,消除小部件循环焦点的更简单方法是取消绑定 <<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 会更容易

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2012-07-01
      • 2014-04-05
      • 2012-11-17
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2022-01-16
      • 2019-05-31
      相关资源
      最近更新 更多