2017-02-20 1 views
0

На холсте Tkinter, что быстрее при обновлении фрагмента текста, canvas.itemconfig(text, text='new text') или удалении текста и записи нового текста на экран.Tkinter: что быстрее: удаление и рисование нового или Itemconfig?

Удаление текста и добавления нового текста:

text = canvas.create_text(200, 200, text='old text') 
canvas.delete(text) 
text = canvas.create_text(200, 200, text='old text') 

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

text = canvas.create_text(200, 200, text='old text') 
canvas.itemconfig(text, text='new text') 
+1

«быстрее» - довольно простая вещь для измерения. –

ответ

2

Быстрее для одного предмета не имеет значения. У холста есть проблемы с производительностью , когда ему приходится управлять большим количеством идентификаторов объектов, даже если они являются идентификаторами удаленных элементов. Каждый раз, когда вы удаляете и создаете текст, вы добавляете еще один идентификатор. Если вы удаляете и воссоздаете текстовый элемент снова и снова, в конечном итоге вы будете вызывать проблемы с производительностью.

Лучшим решением является настройка текста существующего элемента.

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

0

А что быстрее, а это на самом деле не сделает большой разницы, так как после того, как все мы говоря о доли секунды. Вы могли бы сказать, что canvas.itemconfig - это только одна строка кода, а при повторном добавлении текста - 2 строки и 2 команды, поэтому canvas.itemconfig может сделать это быстрее или сделать ваш код более эффективным. Итак ... если вы не сталкиваетесь с проблемами с canvas.itemconfig, я бы придерживался этого на данный момент.

Смежные вопросы