Tkinter - невозможно ввести в виджет ввода после восстановления окна с помощью функции wm_state ('normal') - PullRequest
1 голос
/ 02 апреля 2020

Я не могу найти никакого решения, поэтому я надеюсь, что вы мне поможете.

Я использую в своем проекте виджеты для входа и wm_state ('iconi c') и wm_state ('normal) функция. К сожалению, после восстановления главного окна tkinter с помощью функции wm_state ('normal) я не могу использовать виджет ввода. Минимизация и восстановление окна вручную решает проблему. У вас есть идеи, как я могу избежать этого? Ниже приведен код тестирования, который я подготовил для лучшего понимания. Спасибо вам за помощь. Я думал, что root .withdraw () является решением, но, к сожалению, программа исчезает с панели задач, что не очень хорошо в моем случае.

import tkinter as tk    
from tkinter import ttk    
import time

root = tk.Tk()
root.geometry('200x200')

def test_function():
    root.wm_state('iconic')
    time.sleep(0.5)
    root.wm_state('normal')


button = tk.Button(root, text='MINIMIZE BUTTON', command=test_function)
button.grid(row=0, column=0)

entrywidget = tk.Entry(root, width='10')
entrywidget.grid(row=1, column=0)

entrywidget.focus()

root.mainloop()

1 Ответ

0 голосов
/ 02 апреля 2020

Использование:

root.withdraw()     
root.deiconify()    

Вместо:

root.wm_state('iconic')
root.wm_state('normal')

Решает проблему виджета ввода, но программа больше не отображается на панели задач после root .withdraw () до root .deiconify () вызов метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...