Ваше заявление работает, потому что синтаксис инициализации коллекции использует метод Add()
для добавления элементов в коллекцию, а не для установки члена в новый экземпляр коллекции. По сути, ваш код эквивалентен:
var order = new Order();
order.Items.Add(new OrderItem());
order.Items.Add(new OrderItem());
Это прекрасно, поскольку вы только когда-либо используете метод getter.
Атрибуты width
и height
не всегда относятся к пикселям. Для некоторых виджетов ширина и высота указываются в символах. Например, `Label (root, text =" Hello ", width = 10) сделает виджет достаточно широким, чтобы вместить 10 символов среднего размера в шрифте по умолчанию.
Почти любой виджет с текстом будет измерять ширину и высоту в символах (Text
, Label
, Button
и т. Д.). Виджеты, текст которых не является частью их обычного внешнего вида (Frame
, Canvas
и т. Д.), Измеряются в пикселях.
Для некоторых значение width
и height
зависит от других параметров. Например, в Button
или Label
, если виджет устанавливает атрибут image
, тогда значения будут в пикселях, а если атрибут image
не установлен, то значения будут в символах.
В документации для каждого виджета будет сказано, что представляют собой width
и height
.