displaylines
невозможно рассчитать, если данные не отображаются, поскольку значение зависит от различных факторов, таких как разрешение экрана, фактический шрифт (который может отличаться от запрошенного шрифта), размер виджет один раз pack
, place
или grid
и все его расчеты и так далее. Они не могут быть определены до тех пор, пока окно не будет отображено на экране.
Чтобы проиллюстрировать эту точку, добавьте top.update()
непосредственно перед вызовом countit()
, и вы увидите, что значение правильно печатается в первый раз.
Лучшим решением будет не вызывать countit
, пока окно не будет отображено на экране. Например, вы можете добавить эту строку кода после создания текстового виджета:
DE.bind("<Map>", lambda event: countit())
Вышеуказанный вызов вызовет countit()
сразу после того, как виджет будет отображен на экране.