Re: wrapplength для tkinter.Label, из документации NM Tech Джона Шипмана: «Вы можете ограничить количество символов в каждой строке, установив для этой опции желаемое число. Значение по умолчанию 0 означает, что строки будут быть сломанным только в новых строках ". Другие источники согласны с тем, что единицы измерения длины - это символы.
Код ниже, кажется, ломает линию, как если бы единицы длины были пикселями, а не символами. Например, если я установлю значение W-длины на 10, метка отобразит столбец текста шириной в один или два символа. Если я установлю значение обёртки равным 20, строки будут состоять из 3 или 4 символов.
В моем приложении пользователь будет создавать свои собственные простые виджеты для пользовательских форм, и было бы лучше, если бы опция обертки использовала количество символов для единиц вместо того, что оно делает. Поскольку документы NMTech предназначены для Tkinter 8.5, но 8.6 - это то, что поставляется с моим Python 3.5, возможно, это объясняет разницу, но я не вижу документов для 8.6.
Но в идеале строки должны переноситься в ближайшем интервале между словами с длиной обтекания, используемой только как максимальная длина строки. Поэтому, если пользователь все равно должен вводить свой собственный \ n, длина обертки мне кажется бесполезной.
Резюме: в графическом интерфейсе для пользователей, которые будут вводить значения параметров для своих собственных простых виджетов, 1) есть ли способ заставить Tkinter принимать символы для единиц длины строки и 2) можно ли заставить разрыв строки в ближайшем пробел за пределами длины строки с длиной обертки, используемой только как максимальная длина строки вместо абсолютной длины строки?
Спасибо за любые решения или предложения.
import tkinter as tk
root = tk.Tk()
sib = tk.Label(root, text='Give em hell Harry', wraplength=10)
sib.grid()
root.mainloop()