【问题标题】:Exit a tkinter window even when unfocused即使没有焦点也退出 tkinter 窗口
【发布时间】:2020-05-08 17:11:26
【问题描述】:

我正在制作一个能够击败游戏 Whac-A-Mole 的 AI。这个程序接管了鼠标,因此我需要设法阻止程序运行(你几乎不能移动鼠标,所以在 Tkinter 中按一个按钮是行不通的)。我选择了“Escape”键作为关闭它的开关。问题是,每当 AI 敲打鼹鼠(点击屏幕)时,Tkinter 窗口就会失去焦点,因此“绑定”不起作用。

有没有办法在不聚焦 Tkinter 窗口的情况下停止程序?

【问题讨论】:

标签: python tkinter focus


【解决方案1】:

如果你想让窗口聚焦,你可以使用.focus() 方法。

例如:

from tkinter import *
window = Tk()
window2 = Toplevel()
window.mainloop()

第二个窗口window2 不会成为焦点。要使其成为焦点,您可以这样做:

from tkinter import *
window = Tk()
window.title("window1")
window2 = Toplevel()
window2.title("window2")
window2.focus()
window.mainloop()

这将使 window2 成为焦点,即使在底部。

要将其置于顶部,您可以添加以下行:

window2.attributes("-topmost", True)

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    要将 tkinter 窗口置于您可以使用的所有其他窗口的顶部:

    from tkinter import*
    gui = Tk()
    gui.wm_attributes("-topmost", True)
    gui.mainloop()
    

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 2012-02-21
      • 2018-03-15
      相关资源
      最近更新 更多