【问题标题】:How to remove focus out of a Text widget in Tkinter, Python如何在 Tkinter,Python 中从文本小部件中移除焦点
【发布时间】:2019-04-08 23:22:25
【问题描述】:

通过在我的 GUI 中放置一个文本小部件

from Tkinter import Text
textBox=Text(root, height=20, width=10)
textBox.pack()

每当我在那个框中写东西时,我都无法将焦点返回到窗口中的任何其他位置。我有一些绑定到事件的键,在我在 Text 小部件中写入后停止工作。

有没有办法在写完文字后将焦点重定向到另一个地方?

【问题讨论】:

  • 将键绑定到主窗口。

标签: python tkinter


【解决方案1】:

请按回车键将焦点返回到窗口

import tkinter as tk


def onReturn(*event):

    root.focus_set()
    
    
root = tk.Tk()

textBox= tk.Text(root, height=20, width=10)
textBox.pack()

root.bind("<Return>", onReturn)

root.mainloop()

【讨论】:

    【解决方案2】:

    有没有办法在写完文字后将焦点重定向到另一个地方?

    每个小部件都有一个名为 focus_set 的方法,可用于将键盘焦点移至该小部件。

    例如,要将焦点设置到根窗口,您可以这样做:

    root.focus_set()
    

    【讨论】:

    • 如果画布和小部件被打包在根目录中怎么办?这并没有改变重点,实际上已经在根上?
    • @hirschme:我不明白你的问题。 focus_set 如果您在没有焦点(并且能够接受焦点)的小部件上调用它,绝对会改变焦点。如果你在一个已经有焦点的小部件上调用它,那么什么都不会改变。键盘焦点一次只能在一个小部件上。小部件是否包含在一个共同的父级中这一事实根本不会影响焦点。
    猜你喜欢
    • 2023-03-20
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多