Открыть окно и текстовое поле фокуса tkinter

У меня есть (второе) окно tkinter, которое при открытии не получает фокуса, а первое окно остается сфокусированным (хотя второе окно появляется перед другим). Он содержит текстовое поле, которое я хочу иметь, но мне нужно дважды щелкнуть его, чтобы ввести.

Как сфокусировать текстовое поле при открытии окна?

Мои попытки: textbox.focus_set() , window.grab_set() , window.focus_set()

Никто из них не сделал то, что хотел.

EDIT: вместо этого .focus_set() вызывает ошибку, когда (и только когда) закрывает главное окно: can't invoke "focus" command: application has been destroyed

Это мой текущий код ( tkWin – главное окно, tkcWin – второе окно):

 def click(self, field): import _tkinter if field != None: try: self.tkcWin = Tk()#creating window self.tkcWin.focus() self.tkcWin.title(field) self.tkcWin.geometry('300x100') self.mainframe = Frame(master=self.tkcWin,background="#60BF98") self.mainframe.place(x=0, y=0, width=300, height=300) self.textb = Text(master=self.mainframe) self.textb.place(x=0, y=50) self.textb.bind("<Return>",lambda a: self.setM(field)) self.textb.bind("<Return>",lambda a: self.tkcWin.destroy(),True) self.tkcWin.grab_set() self.tkWin.wait_window(self.tkcWin) self.textb.focus_set() hwnd = self.tkcWin.winfo_id() ctypes.windll.user32.SetFocus(hwnd) self.tkcWin.mainloop() except _tkinter.TclError: self.tkcWin.destroy() 

One Solution collect form web for “Открыть окно и текстовое поле фокуса tkinter”

Оказывается, вы можете просто вызвать метод deiconify() вторичного окна, а затем метод deiconify() виджета:

 toplevel.deiconify() text.focus_set() 

Вот оригинальная работа для Windows (больше не рекомендуется):

Начните с добавления import ctypes вверху.
Продолжайте и фокусируйте свой виджет, как и у вас: text.focus_set()
Получить hwnd второго окна: top_hwnd = toplevel.winfo_id()
И, наконец, активируйте второе окно с помощью: ctypes.windll.user32.SetFocus(top_hwnd)

  • Удаление кнопок минимизации / увеличения в Tkinter
  • Виджет для ноутбука в Tkinter
  • Кнопка Tkinter остается нажатой при нажатии
  • Ошибка создания исполняемого файла с помощью cx_Freeze: IndexError: индекс tuple выходит за пределы диапазона
  • Воспроизведение анимаций в GIF с помощью Tkinter
  • В Tkinter есть ли способ сделать виджет невидимым?
  • Выполнение команды по минимизации окон в Tkinter
  • Греческие буквы в графическом интерфейсе - PYTHON
  • Как распечатать и ввести пользовательский ввод в текстовое поле в tkinter, Python 3.2.5?
  • Tkinter: «Python не может быть настроен для Tk»
  • tkinter radiobutton не обновляющая переменная
  • Python - лучший язык программирования в мире.