Как сделать чтоб новое окно после закрытия старого становилось активным? tkinter, python
import tkinter
import time
while True:
time.sleep(1)
window = tkinter.Tk()
entry = tkinter.Entry(window)
entry.place(x=10, y=10)
entry.focus_set()
window.mainloop()
Этот код создает окно, которое принимает текст. Если окно закрыть, оно через секунду открывает новое такое же, но проблема-это новое окно не активно(туда нельзя писать текст до нажатия мышкой). Как это исправить?
Ответы (1 шт):
Автор решения: Viktor Shapoval
→ Ссылка
import tkinter
import time
import ctypes
alt_key = 0x12
extended_key = 0x0001
key_up = 0x0002
# store some stuff for win api interaction
set_to_foreground = ctypes.windll.user32.SetForegroundWindow
keybd_event = ctypes.windll.user32.keybd_event
def steal_focus():
keybd_event(alt_key, 0, extended_key | 0, 0)
set_to_foreground(window.winfo_id())
keybd_event(alt_key, 0, extended_key | key_up, 0)
entry.focus_set()
while True:
window = tkinter.Tk()
entry = tkinter.Entry(window)
entry.place(x=10, y=10)
entry.focus_set()
entry.focus()
window.after(20, steal_focus)
window.attributes("-top", True)
window.mainloop()