Tkinter замораживает Python и проводник Windows

#python #windows #tkinter #taskmanager #filedialog

#python #Windows #tkinter #taskmanager #файловый каталог

Вопрос:

Я часто использовал Tkinter для запроса пользователей и получения пути к файлу. Однако я сталкиваюсь с повторяющейся проблемой, когда появляется файловый каталог, он часто приводит к сбою Windows.

Экран зависает, все блокируется, и когда я вхожу в диспетчер задач, я вижу «Python не отвечает», когда я пытаюсь убить Python, тогда сам диспетчер задач зависает, и тогда мой единственный вариант — перезагрузить мой ноутбук.

Вот пример кода того, что я обычно делаю :

 import tkinter as tk
from tkinter import filedialog
import os

window=tk.Tk()
currdir=os.getcwd()

path=filedialog.askopenfilename(parent=window, initialdir=currdir, title="Select file")
  

Я делаю что-то не так? Какие-нибудь советы? Это просто плохая производительность этой библиотеки?

Комментарии:

1. Иногда у меня возникает такая же проблема. Однако я могу убить с помощью файлового менеджера.

Ответ №1:

Вы пробовали использовать блок try / except, чтобы выйти из цикла, даже если вы попали в исключение?

 import tkinter as tk
from tkinter import filedialog
import os

try:
    window=tk.Tk()
    currdir=os.getcwd()

    path=filedialog.askopenfilename(parent=window, initialdir=currdir, title="Select file")
finally:
    window.mainloop()
  

Ответ №2:

Включить

 window.mainloop()
  

В конце вашего файла графического интерфейса и посмотрите, работает ли он таким образом

Ответ №3:

Спасибо @User9701 и @Linden

Следуя вашему совету, я обновил свой код в соответствии с приведенным ниже :

 import tkinter as tk
from tkinter import filedialog
import os

try:
    window=tk.Tk()
    currdir=sos.getcwd()
    path=filedalog.asopenfilename(parent=window,initialdir=currdir, title="Select file")

finally:
    window.destroy()