Открыть окно и текстовое поле фокуса 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)

Interesting Posts

Python / Django скачать изображение с URL, изменить и сохранить в ImageField

Создание торговой платформы с диаграммами – предложения для библиотеки GUI Python

Pandas сравнивает два кадра данных и удаляет то, что соответствует одному столбцу

Самый быстрый способ сортировки каждой строки в кадре данных pandas

Pandas эквивалент функции Oracle Lead / Lag

Предпочтительный способ динамического вызова метода какого-либо объекта

Как импортировать класс Python, который находится в каталоге выше?

Как переформатировать выход Spark Python

Почему вложенные функции python не называются замыканиями?

Какой самый быстрый способ рассортировать панды DataFrame?

OpenCV cv2.fillPoly vs. cv2.fillConvexPoly: ожидаемый тип данных для массива многоугольных вершин?

Пиратский движок Google App, пишущий csv на арабском языке

TypeError: unorderable types: str () <int ()

Добавьте элемент между каждым элементом, уже находящимся в списке

Python OpenCV конвертирует изображение в байтовую строку?

Python - лучший язык программирования в мире.