Я пытаюсь создать графический интерфейс для расчета всех командировочных расходов. Это еще не закончено из-за проблемы, когда в определенный момент tkinter становится очень медленным. Понятия не имею, что я сделал не так.
Я сделал большинство виджетов как класс. Все нормально, пока я не попробую сделать TravelReportExpensesFrame(ttk.Labelframe)
с несколькими ExpenseFrame(ttk.Frame)
.
Создание класса в классе TravelReportPicker(ttk.Frame)
в методе travel_id_cbo_index_change(self)
[gui.py, строка 515]. Если вы хотите увидеть разницу. Запустите gui.py со строками 535, 536, 537 и без них, где я на самом деле называю создание TravelReportExpensesFrame(ttk.Labelframe)
.
Я запустил cProfile
, и разница (с / без) значительна, в то время как вызов mainloop cumtime примерно такой же.
{вызов метода для объектов _tkinter.tkapp}
с тремя упомянутыми выше строками:
ncalls tottime percall cumtime percall
77780/10976 43.917 0.001 46.279 0.004
без 3-х строк:
ncalls tottime percall cumtime percall
1622/1224 0.660 0.000 0.683 0.001
Я относительно новичок в питоне. Это мой первый пост, и я не являюсь носителем английского языка, поэтому, пожалуйста, будьте осторожны со мной.
Я опубликовал свой код на github и ссылка ниже.
Вот весь проект