Кто-нибудь знает, почему создание тысяч маленьких этикеток занимает так много времени? Python, Ткинтер - PullRequest
0 голосов
/ 27 февраля 2020

Кто-нибудь знает, почему печать содержимого матрицы 100x100 с использованием меток занимает так много времени? Ниже приведен пример. Я также открыт для любых альтернативных идей.

try:
    from Tkinter import *
except:
    from tkinter import *
import numpy as np

dbnm = Tk()
a = np.zeros([100,100])
for i, ii in enumerate(a):
    for j, k in enumerate(ii):
        Label(dbnm, text = '  ', k, '  ').grid(row=i,column=j)

dbnm.mainloop()

Спасибо за ваше время

1 Ответ

0 голосов
/ 27 февраля 2020

Это просто потому, что tkinter не предназначен для создания 10 000 виджетов. grid должен вычислить правильное число для каждой ячейки. Выполнение этих расчетов 10000 раз складывается. Даже переключение на place, где вы явно поместите каждую ячейку в определенном c месте, будет очень медленным.

Если вы рисуете текст на холсте вместо использования меток и grid, он будет выполнять на несколько порядков быстрее, но при 10000 текстовых элементов даже холст начнет увязать.

...