from tkinter import *
from tkinter import ttk
Lastx, lasty = 0,0
GridSize="410x520"
def reset():#Resets the grid size to the size set in the slider and randomizes cells.
global grid
global GridSize
gridMaker()
canvas.delete("all")#Clears the screen
ответ
CellSwitcher
Ваших функций итерации по всем пунктам в клетке, когда он в конечном итоге только изменяет девять клеток (сами и ее 8 соседей), не так ли? Зачем перебирать каждую ячейку? Если вам известна ячейка, которая была нажата (например, строка 3, столбец 2), вы можете легко вычислить соседние ячейки. Итак, часть ответа состоит в том, чтобы удалить итерацию по всем ячейкам и заменить ее прямым поиском ячейки с щелчком и ее соседями.
Кроме того, ваша функция возврата вызывает CellSwitcher
, который кажется излишним. Если вы произвольно устанавливаете цвет каждой ячейки, зачем проходить через CellSwitcher, так как он меняет цвета всех его соседей?
Возможно, самым большим виновником является то, что вы воссоздаете все объекты холста при каждом вызове до CellSwitcher
, не удаляя ни один из старых объектов. Для этого нет оснований - создайте все объекты canvas только один раз, а затем измените их с помощью метода холста на itemconfig.
У холста есть проблемы с производительностью, когда у вас много предметов. В вашем случае, после первого GUI вы уже создали 9800 элементов холста. Нажмите на одну ячейку, и на холсте теперь есть 10 200 предметов. И так далее. Холст может довольно легко обрабатывать тысячи предметов, даже десятки тысяч. Однако, когда я перемещаю ползунок до 20, вы создаете целые 125 600 объектов на холсте, что, безусловно, приведет к тому, что canvas будет недостаточно.
- 1. Есть ли способ проверить, есть ли хост?
- 2. Есть ли способ поговорить?
- 3. Есть ли лучший способ?
- 4. Есть ли лучший способ?
- 5. Есть ли способ проверить, находится ли я в обработчике сигналов?
- 6. Есть ли способ проверить, могу ли я безопасно использовать Page.IsValid?
- 7. Есть ли способ узнать, использую ли я рекурсию в Python?
- 8. Есть ли лучший способ сделать iso4217 RegEx?
- 9. Есть ли способ очистить django.db.connection.queries?
- 10. Есть ли способ полуавтоматически совершить?
- 11. Есть ли способ управлять onPanResponderMove?
- 12. Есть ли способ избежать AppleStore?
- 13. Есть ли способ приостановить SKActions?
- 14. Есть ли способ подражать QGroupVBoxLayout?
- 15. Есть ли способ удалить FILE_FLAG_DELETE_ON_CLOSE?
- 16. Есть ли способ подкласса UIToolbar?
- 17. Есть ли способ установить HttpResponse?
- 18. Есть ли способ перебора словаря?
- 19. Есть ли способ настроить JLabel?
- 20. Есть ли способ _get_ UnhandledExceptionFilter?
- 21. Есть ли способ синхронизировать это?
- 22. Есть ли способ спящего приложения?
- 23. Есть ли способ ускорить datatable.LoadDataRow()?
- 24. Есть ли способ «выделить» код?
- 25. Есть ли способ повторить привязку?
- 26. Есть ли способ подвести итоги?
- 27. Есть ли способ var_dump переменная?
- 28. Есть ли способ, например, «IPermission.TryDemand»?
- 29. Есть ли способ очистить CookieContainer?
- 30. Есть ли способ переписать объект `{}`?
Где ваш профайлер? –
Вы пробовали профилировать его, чтобы увидеть, какие части занимают больше всего времени? – nanny
Что-то пошло не так с вашим редактированием. Большая часть кода ушла, а половина названия ушла. –