В Tkinter как мне убрать фокус с виджета? - PullRequest
7 голосов
/ 29 ноября 2010

Я бы хотел удалить фокус с виджета вручную.

Ответы [ 2 ]

5 голосов
/ 29 ноября 2010

Вы можете сфокусироваться на другом фиктивном виджете.

Редактировать

from Tkinter import *

def callback():
    print master.focus()

master = Tk()
e = Entry(master)
e.pack()
e.focus()
b = Button(master, text="get", width=10, command=callback)
b.pack()

master.mainloop()

Фокусировка на не сфокусированном виджете приведет к удалению фокуса из другого виджета.

2 голосов
/ 15 декабря 2017
  • Установите фокус на другой виджет, чтобы убрать фокус с целевого виджета. Для этого есть два метода: w.focus_set() и w.focus_force(). Однако метод w.focus_force() невежлив. Лучше подождать, пока оконный менеджер даст вам фокус. Установка фокуса на родительский виджет или на корневое окно убирает фокус с целевого виджета.
  • Некоторые виджеты имеют опцию takefocus. Установите takefocus на 0, чтобы вывести ваш виджет из фокуса (когда пользователь нажимает клавишу <Tab>).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...