tkinter.filedialog.asksaveasfilename медленно, чтобы сохранить файл - PullRequest
0 голосов
/ 14 мая 2019

Я заметил, что tkinter filedialog asksaveasfilename требует 3 или более секунд для сохранения файла.это нормально?Есть ли способ сделать это быстрее?(блокнот или блокнот ++ работают быстрее) Python 3.7

пример

import tkinter
import tkinter.filedialog
import tkinter.scrolledtext


class app:

    def __init__(self):
        self._root= tkinter.Tk()
        self._root.grid()
        self._text= tkinter.Text(self._root)
        self._text.grid()
        self.menubar = tkinter.Menu(self._root)
        self.filemenu  = tkinter.Menu(self.menubar) 
        self.filemenu.add_command(label="Salva", command=self._save)
        self.menubar.add_cascade(label="File", menu=self.filemenu) 
        self._root.config(menu=self.menubar)

    def _save(self):
        path = tkinter.filedialog.asksaveasfilename(title="Save")
        if len(path) > 0:
            with open(path, "w") as f:
                f.write(self._text.get("1.0", "end-1c"))

    def show(self):
        self._root.mainloop()

a=app()
a.show()

1 Ответ

0 голосов
/ 14 мая 2019

Я проверил предоставленный код, и он сохранял файл за миллисекунду. Использовали ли вы функцию времени, чтобы проверить, сколько времени понадобилось, чтобы сэкономить? Если вы это сделали, обязательно отметьте время начала, прежде чем спрашивать пользователя о расположении файла, в противном случае он будет включать время, необходимое пользователю для выбора нужного местоположения файла.

def _save(self):

    # Do Not Start timer here
    path = tkinter.filedialog.asksaveasfilename(title="Save")

    # Start timer here
    start = time.time()

    if len(path) > 0:
        with open(path, "w") as f:
            f.write(self._text.get("1.0", "end-1c"))

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