【问题标题】:Tkinter - window focus loss eventTkinter - 窗口焦点丢失事件
【发布时间】:2018-03-15 23:49:20
【问题描述】:

tkinter 窗口失去焦点时是否会触发一些事件,可以使用.bind 方法绑定到tkinter 窗口?

【问题讨论】:

标签: python tkinter window focus


【解决方案1】:

您要查找的事件是<FocusOut>

import tkinter as tk

def on_focus_out(event):
    if event.widget == root:
        label.configure(text="I DON'T have focus")

def on_focus_in(event):
    if event.widget == root:
        label.configure(text="I have focus")

root = tk.Tk()
label = tk.Label(width=30)
label.pack(side="top", fill="both", expand=True)

root.bind("<FocusIn>", on_focus_in)
root.bind("<FocusOut>", on_focus_out)

root.mainloop()

【讨论】:

  • 我正在使用window.overrideredirect(True),但它不起作用。
  • @JakubBláha:您需要在问题中添加该详细信息。
  • 虽然 Bryan Oakley 是对的,但您需要提及这些细节,它仍然对我很有效。我不知道它是否依赖于操作系统(尽管这也是您的问题中缺少的信息),但它在 Windows 10 Home(Python 3.7,Tcl/Tk 8.5)上运行良好。
  • tkinter 窗口是否有可能永远没有焦点,但仍然可以单击停留在顶部的按钮?喜欢屏幕键盘?
猜你喜欢
  • 1970-01-01
  • 2021-02-03
  • 2021-08-22
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多