Свойства стилей
Свойства стиля, связанные со стилями, управляют отображением Отображаемых (Displayables). Свойства стиля могут быть заданы как без префикса, в этом случае они применяются ко всем состояниям отображаемого, так и с префиксом, который ограничивает свойство определенным количеством состояний.
Префиксы свойств стиля
Применение префикса к свойству стиля позволяет отображаемому изменять свой внешний вид в зависимости от состояния фокуса или выбора. Например, кнопка может изменять свой цвет при наведении на нее курсора мыши или чтобы показать, что представленный ею выбор является текущим.
Отображаемое может находиться в пяти состояниях.
- insensitive
Используется, когда пользователь не может взаимодействовать с отображаемым.
- idle
Используется, когда отображаемое не находится в фокусе и не выбрано.
- hover
Используется, когда отображаемое находится в фокусе, но не выбрано.
- selected_idle
Используется, когда отображаемое не находится в фокусе, но выбрано.
- selected_hover
Используется, когда отображаемое находится в фокусе и выбрано.
Отображаемые типа Button и Bar (и их варианты) обновляют свое состояние и состояние своих дочерних элементов в ответ на события. Например, когда пользователь наводит курсор мыши на невыбранную кнопку, она и все ее дочерние элементы перейдут в состояние hover.
Префиксы свойств стиля позволяют устанавливать свойства стиля для разных состояний. Существует система наследования, так что один префикс может подразумевать установку свойства для нескольких состояний.
Правила наследования:
префикс |
подразумеваемые префиксом состояния |
|---|---|
(без префикса) |
insensitive, idle, hover, selected_idle, selected_hover |
|
idle, selected_idle |
|
hover, selected_hover |
|
selected_idle, selected_hover |
|
insensitive |
|
selected_idle |
|
selected_hover |
|
selected_insensitive |
Продемонстрируем это на примере текстовой кнопки. Текстовые кнопки по умолчанию используют два стиля: button для самой кнопки и button_text для текста внутри кнопки. Свойство стиля background устанавливает фон кнопки, а свойство color — цвет текста.:
# Фон кнопки серый в состоянии insensitive, светло-
# синий при наведении (hover) и темно-синий в остальных случаях.
style button:
background "#006"
insensitive_background "#444"
hover_background "#00a"
# Текст кнопки желтый, когда она выбрана (selected), и белый
# в остальных случаях.
style button_text:
color "#fff"
selected_color "#ff0"
Значения свойств стиля
Каждое свойство стиля ожидает данные определенного типа. Многие из них являются стандартными типами Python, но некоторые являются новыми. Ниже приведены описания новых типов значений, которые может ожидать свойство стиля.
- position
Позиции используются для указания местоположения относительно верхнего левого угла содержащей области. (Для размещения и размера содержащей областью является компоновка (layout), в которой находится отображаемое, если она задана, или экран в противном случае. Для якорей (anchors) содержащей областью является размер самого отображаемого.)
Способ интерпретации значения позиции зависит от типа этого значения:
- int (например, 0, 1, 37 или 42)
Целое число интерпретируется как количество пикселей от левой или верхней стороны содержащей области.
- float (например, 0.0, 0.5 или 1.0)
Число с плавающей точкой интерпретируется как доля от содержащей области. Например, 0.5 — это точка на полпути между сторонами содержащей области, а 1.0 — это на правой или нижней стороне.
- absolute(value, /)
Например,
absolute(100.25)илиabsolute(a+b), гдеaиbмогут быть как float, так и int.Число
absoluteинтерпретируется как количество пикселей от левого или верхнего края экрана при использовании рендеринга с субпиксельной точностью.
- position(absolute, relative, /)
Например,
position(-10, .5).Комбинация absolute, которое будет рассматриваться как абсолютная позиция, и relative, которое будет рассматриваться как относительная позиция, как описано выше. Оба компонента складываются для формирования конечной позиции.
Всегда следует передавать оба параметра, иначе результаты могут быть непредсказуемыми.
- displayable
Любое отображаемое. Если отображаемое содержит подстановку "[prefix_]", выполняется поиск по префиксу, как описано ниже.
- color
Цвета в Ren'Py можно выразить в виде строк, начинающихся со знака решетки (#), за которым следует тройка или четверка шестнадцатеричных значений, где каждый из трех или четырех элементов состоит из одного или двух шестнадцатеричных символов кода цвета.
В тройке компоненты представляют красный, зеленый и синий цвета. В четверке компоненты представляют красный, зеленый, синий и альфа-канал. Например:
"#f00"и"#ff0000"представляют непрозрачный красный цвет."#0f08"и"#00ff0080"представляют полупрозрачный зеленый цвет.
Цветовые тройки такие же, как и в HTML.
Цвета также можно представить в виде кортежа из 4 компонентов, где 4 компонента — это целые числа от 0 до 255. Компоненты соответствуют красному, зеленому, синему и альфа-каналу, в указанном порядке.
(0, 0, 255, 255)представляет непрозрачный синий цвет.
Наконец, цвета могут быть экземпляром класса
Color.
Поиск по префиксу стиля
Когда свойство стиля содержит подстановку "[prefix_]", выполняется поиск по префиксу. Поиск по префиксу выполняется отдельно для каждого состояния, включая состояния, которые наследуются от исходного назначенного свойства.
Например, если у нас есть:
style button:
hover_background "[prefix_]background.png"
выполняются отдельные поиски для состояний hover и selected_hover. Искомые префиксы различаются в зависимости от состояния.
состояние |
порядок поиска |
|---|---|
idle |
"idle_", "" |
hover |
"hover_", "", |
insensitive |
"insensitive_", "", "idle_" |
selected_idle |
"selected_idle_", "idle_", "selected_", "" |
selected_hover |
"selected_hover_", "hover_", "selected_", "" |
selected_insensitive |
"selected_insensitive_", "hover_", "selected_", "", "selected_idle_", "idle_" |
При выполнении поиска каждый префикс проверяется в заданном порядке. В строке "[prefix_]" заменяется на префикс, а затем Ren'Py проверяет, существует ли загружаемый файл или изображение с таким именем. Если файл или изображение существует, поиск прекращается и используется найденное отображаемое. В противном случае поиск переходит к следующему префиксу.
Префикс стиля передается через отображаемые, которые не принимают ввод от пользователя, включая контейнеры, трансформации и рамки.
В качестве примера использования: если файлы idle_button.png и hover_button.png существуют (и других файлов, заканчивающихся на button.png, нет):
style button:
background "[prefix_]button.png"
эквивалентно:
style button:
idle_background "idle_button.png"
hover_background "hover_button.png"
insensitive_background "idle_button.png"
selected_idle_background "idle_button.png"
selected_hover_background "hover_button.png"
selected_insensitive_background "idle_button.png"
Список всех свойств стиля
Свойства стиля управляют внешним видом различных отображаемых. Не все свойства стиля применимы ко всем отображаемым, поэтому мы разделили их на группы.
Свойства стиля позиции
Эти свойства применяются ко всем отображаемым и в основном управляют положением отображаемого внутри области, выделенной ему компоновкой (layout), или на экране, если оно не находится внутри компоновки.
- alt - string or None
Альтернативный текст, используемый для отображаемого при включенном самоозвучивании. См. раздел Самоозвучивание для получения дополнительной информации.
- xpos - position
Положение отображаемого относительно левой стороны содержащей области.
- ypos - position
Положение отображаемого относительно верхней стороны содержащей области.
- pos - tuple of (position, position)
Эквивалентно установке xpos в первый компонент кортежа, а ypos — во второй компонент кортежа.
- xanchor - position
Положение якоря относительно левой стороны отображаемого.
- yanchor - position
Положение якоря относительно верхней стороны отображаемого.
Если отображаемое является
Text(), то у этого свойства есть одно специальное значение. Если свойство установлено в renpy.BASELINE, якорь устанавливается на базовую линию первой строки текста.
- anchor - tuple of (position, position)
Эквивалентно установке xanchor в первый компонент кортежа, а yanchor — во второй компонент кортежа.
- xalign - float
Эквивалентно установке xpos и xanchor в одно и то же значение. Это приводит к размещению отображаемого в относительном положении на экране, где 0.0 — это левая сторона, 0.5 — центр, а 1.0 — правая сторона.
- yalign - float
Эквивалентно установке ypos и yanchor в одно и то же значение. Это приводит к размещению отображаемого в относительном положении на экране, где 0.0 — это верх, 0.5 — центр, а 1.0 — низ.
- align - tuple of (float, float)
Эквивалентно установке xalign в первый компонент кортежа, а yalign — во второй.
- xcenter - position
Эквивалентно установке xpos в значение этого свойства, а xanchor в 0.5.
- ycenter - position
Эквивалентно установке ypos в значение этого свойства, а yanchor в 0.5.
- xycenter - tuple of (position, position)
Эквивалентно установке xcenter в первый компонент кортежа, а ycenter — во второй.
- xoffset - int
Задает количество пикселей, которое добавляется к горизонтальной позиции, вычисленной с использованием xpos и xalign.
- yoffset - int
Задает количество пикселей, которое добавляется к вертикальной позиции, вычисленной с использованием ypos и yalign.
- offset - tuple of (int, int)
Эквивалентно установке xoffset в первый компонент кортежа, а yoffset — во второй компонент кортежа.
- xmaximum - int
Указывает максимальный горизонтальный размер отображаемого в пикселях.
- ymaximum - int
Указывает максимальный вертикальный размер отображаемого в пикселях.
- maximum - tuple of (int, int)
Эквивалентно установке xmaximum в первый компонент кортежа, а ymaximum — во второй.
- xminimum - int
Устанавливает минимальную ширину отображаемого в пикселях. Работает только с отображаемыми, которые могут изменять свой размер.
- yminimum - int
Устанавливает минимальную высоту отображаемого в пикселях. Работает только с отображаемыми, которые могут изменять свой размер.
- minimum - tuple of (int, int)
Эквивалентно установке xminimum в первый компонент кортежа, а yminimum — во второй.
- xsize - int or float
Эквивалентно установке xminimum и xmaximum в одно и то же значение. Это приводит к установке ширины отображаемого. Если размер является числом с плавающей точкой (float), он будет относительным к ширине содержащей области.
- ysize - int or float
Эквивалентно установке yminimum и ymaximum в одно и то же значение. Это приводит к установке высоты отображаемого. Если размер является числом с плавающей точкой (float), он будет относительным к высоте содержащей области.
- xysize - tuple of (int or float, int or float)
Эквивалентно установке xsize в первый компонент кортежа, а ysize — во второй компонент.
- xfill - boolean
Если true, отображаемое будет расширяться, чтобы заполнить все доступное горизонтальное пространство. Если false, оно будет лишь достаточно большим, чтобы вместить свои дочерние элементы.
Это работает только для отображаемых, которые могут изменять свой размер.
- yfill - boolean
Если true, отображаемое будет расширяться, чтобы заполнить все доступное вертикальное пространство. Если false, оно будет лишь достаточно большим, чтобы вместить свои дочерние элементы.
Это работает только для отображаемых, которые могут изменять свой размер.
- area - tuple of (int, int, int, int)
Кортеж интерпретируется как (xpos, ypos, width, height). Пытается расположить отображаемое так, чтобы его верхний левый угол находился в xpos и ypos, а его размер был width и height.
Это достигается путем установки свойств xpos, ypos, xanchor, yanchor, xmaximum, ymaximum, xminimum, yminimum, xfill и yfill в соответствующие значения.
Это будет работать не со всеми отображаемыми и не со всеми компоновками (layouts).
- mipmap - boolean or None
Это свойство управляет тем, будут ли текстуры, созданные этим отображаемым, иметь мип-уровни (mipmapped). Это применяется только к определенным отображаемым, включая
Text(),Movie(), и переходы (dissolves).Если None, значение по умолчанию берется из переменных конфигурации, таких как
config.mipmap_text,config.mipmap_moviesиconfig.mipmap_dissolves.
Свойства стиля текста
- antialias - boolean
Если True (по умолчанию), текст шрифта TrueType будет отображаться со сглаживанием (anti-aliased).
- adjust_spacing - boolean or str
Если True, Ren'Py будет корректировать межсимвольный интервал текста с разрешением отрисовки (drawable-resolution), чтобы он соответствовал интервалу текста, отрисованного с виртуальным разрешением, гарантируя, что размер рамок и других контейнеров с текстом не изменится.
Если установлено в False, размер текста не будет меняться, но создатель должен сам убедиться, что для размещения текста достаточно места при любом размере окна.
Если установлено в строку "horizontal", текст будет корректироваться только по горизонтали. Если в "vertical", то только по вертикали.
По умолчанию True для большинства текстов, но False для текста в
input.
- altruby_style - style or None
Если не None, это должен быть объект стиля. Стиль, который используется для альтернативного руби-текста.
- axis - dict or None
Позволяет задавать оси вариативного шрифта. Если не None, это должен быть словарь, сопоставляющий имена осей со значениями. Например:
style default: font "VariableFont.ttf" axis { "weight" : 500, "width" : 95 }
- black_color - color
При рендеринге шрифта на основе изображений черный цвет будет заменен на этот цвет. Не влияет на шрифты TrueType.
Может быть None в случае руби/фуригана-текста, чтобы использовать тот же цвет, что и у родительского текста.
- bold - boolean
Если True, шрифт отображается жирным начертанием. Для шрифта TrueType это обычно включает синтетическое увеличение веса шрифта. Это также может привести к переназначению шрифта с помощью
config.font_replacement_map.
- caret - displayable or None
Если не None, это должно быть отображаемое. Виджет ввода будет использовать его в качестве каретки в конце текста. Если None, в качестве каретки используется мигающая линия шириной 1 пиксель.
- color - color
Цвет, которым отображается текст. При использовании шрифта TrueType шрифт отображается этим цветом. При использовании шрифта на основе изображений белый цвет заменяется на этот цвет.
Может быть None в случае руби/фуригана-текста, чтобы использовать тот же цвет, что и у родительского текста.
- emoji_font - string
Шрифт, используемый для отображения символов Emoji. Он автоматически используется, когда встречается последовательность из одного или нескольких Emoji и не используется тег шрифта.
- first_indent - int
Величина отступа первой строки текста в абзаце, в пикселях.
- font - string
Строка, задающая имя шрифта, используемого для отображения текста.
Для файла шрифта TrueType это обычно имя файла, содержащего шрифт (например,
"DejaVuSans.ttf"). Чтобы выбрать второй шрифт в коллекции, можно добавить префикс в виде номера и знака @ (например,"0@font.ttc"или"1@font.ttc"). Для шрифта на основе изображений это должно быть имя, использованное для регистрации шрифта.
- font_features - dict or None
Если не None, это должен быть словарь, сопоставляющий функции разметки OpenType со значениями. Ключами словаря должны быть четырехсимвольные теги функций OpenType, а значениями - булевы. Например:
style default: font "SomeFont.ttf" font_features { "liga" : True, "smcp" : True, "calt" : False }
Список функций разметки можно найти здесь.
- hinting - str
Управляет хинтингом шрифта. Должна быть одна из следующих строк:
- "auto"
(по умолчанию), принудительно использует авто-хинтер Freetype.
- "auto-light"
Принудительно использует авто-хинтер Freetype в "лёгком" режиме, который выполняет хинтинг только по вертикали.
- "bytecode"
Использует информацию о байткод-хинтинге, найденную в шрифте.
- "none"
Не выполняет хинтинг шрифта.
Также может быть True, и в этом случае значение берется из
config.font_hinting.
- hyperlink_functions - tuple of (function, function, function)
Это кортеж из трех функций, связанных с гиперссылками в тексте.
Первый элемент — функция стиля гиперссылки. При вызове с одним аргументом (аргументом гиперссылки) она должна возвращать объект стиля для использования с гиперссылкой, например,
style.hyperlink_text. Обратите внимание, что объект стиля — это не строка.Второй элемент — функция клика по гиперссылке. Эта функция вызывается, когда пользователь выбирает гиперссылку. Если она возвращает значение, отличное от None, взаимодействие возвращает это значение.
Третий элемент — функция фокуса гиперссылки. Эта функция вызывается с аргументом гиперссылки, когда она получает фокус, и с None, когда она его теряет. Если она возвращает значение, отличное от None, взаимодействие возвращает это значение.
- instance - string or None
При использовании вариативного шрифта это может быть строка, задающая именованный экземпляр шрифта. Например, если у шрифта есть экземпляр "Bold", можно установить это свойство в "Bold", чтобы его использовать.
- italic - boolean
Если true, текст будет отображен курсивом. Для шрифта TrueType это обычно включает синтетическое увеличение наклона шрифта. Это также может привести к переназначению шрифта с помощью
config.font_replacement_map.
- justify - boolean
Если True, между словами вставляются дополнительные пробелы, чтобы левый и правый края каждой строки были выровнены. Это не применяется к последней строке абзаца.
- kerning - float
Коррекция кернинга, количество пикселей пробела, которое добавляется между каждой парой символов. (Может быть отрицательным для уменьшения расстояния между символами).
- language - string
Управляет семейством языков, используемым для разбиения текста на строки и для некоторых других преобразований текста. Допустимые значения:
"unicode"(по умолчанию)Использует алгоритм переноса строк Unicode, который подходит для большинства языков.
"japanese-strict"Форматирует японский текст в "строгом" стиле. Он запрещает разрывы перед малой каной и знаками долготы.
"japanese-normal"Форматирует японский текст в "нормальном" стиле. Он разрешает разрывы перед малой каной, знаками долготы и определенными дефисами.
"japanese-loose"Форматирует японский текст в "свободном" стиле. Разрешает разрывы перед малой каной, знаками долготы, знаками итерации, неразделимыми символами, центрированными знаками препинания и постфиксами; и разрешает разрывы перед префиксами.
"korean-with-spaces"Используется для корейского текста, разделенного пробелами. Это предотвращает перенос строк между соседними корейскими символами.
"thaic90"Используется для тайского текста, отображаемого шрифтами, которые поддерживают кодировку C90 для тайского языка. Объединяет группы символов в одиночные глифы, что позволяет лучше отображать знаки гласных и тона. Для переноса строк используется алгоритм unicode.
"western"Разрешает разрыв строки только по пробелам. Подходит для большинства языков.
"anywhere"Разрешает разрыв в любом месте без руби.
Три режима переноса для японского языка взяты из модуля текста CSS3.
- layout - string
Управляет тем, как слова распределяются по строкам. Допустимые значения:
"tex"(по умолчанию)Использует алгоритм переноса строк Кнута-Пласса, который пытается минимизировать разницу в длине всех строк, кроме последней.
"subtitle"Использует алгоритм переноса строк Кнута-Пласса, но пытается выровнять длину всех строк.
"greedy"Слово помещается на первую строку, на которой для него есть место.
"nobreak"Не выполнять перенос строк.
- line_leading - int
Количество пикселей пробела, которое добавляется над каждой строкой.
- line_overlap_split - int
В режиме медленного текста, если две строки перекрываются, это количество пикселей перекрытия выделяется для верхней строки. Увеличьте это значение, если нижние части символов верхней строки обрезаются.
- line_spacing - int
Количество пикселей пробела, которое добавляется под каждой строкой.
- min_width - int
Устанавливает минимальную ширину каждой строки текста. Если строка короче этого значения, она дополняется до этой длины, а
textalignиспользуется для указания, где размещать это дополнение.
- newline_indent - boolean
Если true, отступ
first_indentиспользуется после каждого символа новой строки в строке. В противном случае используется отступrest_indent.
- outlines - list of tuple of (int, color, int, int)
Это список обводок, которые рисуются позади текста. Каждый кортеж задает обводку, и обводки рисуются от задней к передней.
Список содержит кортежи (size, color, xoffset, yoffset). size - это величина, на которую расширяется шрифт, в пикселях. color - это цвет обводки. xoffset и yoffset - это смещение обводки, в пикселях.
Функциональность обводки также можно использовать для создания падающих теней для шрифтов, указав size равным 0 и ненулевые смещения.
По умолчанию size, xoffset и yoffset масштабируются вместе с текстом. Если они заданы с типом absolute, они не масштабируются. Например:
style default: outlines [ (absolute(1), "#000", absolute(0), absolute(0)) ]
всегда будет создавать границу шириной 1 пиксель.
Обводки работают только со шрифтами TrueType. Обводки работают только при применении ко всему отображаемому Text. Они не работают при применении к гиперссылке, текстовому тегу или другому методу, который применяется только к части текста.
- outline_scaling - string
Это определяет, как размеры и смещения обводки масштабируются при масштабировании окна.
"linear"(по умолчанию), лучше всего подходит для текста с толстыми обводками. Коэффициент масштабирования окна применяется к размеру обводки, а затем округляется до целого числа. Это выглядит лучше для толстых обводок, но концентрические обводки схожей толщины могут стать неразличимыми.
Итоговая ширина всегда не менее 1 пикселя.
"step"Лучше всего подходит для текста, использующего тонкие обводки, и текста с несколькими обводками. Коэффициент масштабирования окна округляется до целого числа в меньшую сторону и применяется к размеру и смещениям обводки. Это гарантирует, что несколько обводок масштабируются вместе, без риска перекрытия друг другом, но это дает разные визуальные результаты в зависимости от размера игрового окна.
Коэффициент масштабирования окна всегда больше 1.
- prefer_emoji - boolean
Некоторые символы unicode имеют как Emoji, так и не-Emoji представление. Это свойство стиля выбирает, будет ли таким символам дано представление Emoji.
- reading_order - string
Это свойство управляет тем, как текст представляется для чтения при включенной поддержке RTL. Основное применение — влияние на нейтральные по направлению строки, например, состоящие исключительно из знаков препинания.
None(по умолчанию), порядок чтения будет определяться на основе текста. Большинство нейтральных строк будут рассматриваться как слева-направо (left-to-right).
"ltr"Принудительно устанавливает представление слева-направо, даже если строка преимущественно состоит из последовательностей RTL-символов.
"rtl"Принудительно устанавливает представление справа-налево, даже если строка преимущественно состоит из последовательностей LTR-символов.
"wltr"Предпочитает представление слева-направо, но переключится на справа-налево, если это имеет больше смысла для текущего текста. Полезно для влияния на строки, состоящие только из знаков препинания, такие как
"..!"."wrtl"Предпочитает представление справа-налево, но переключится на слева-направо, если это имеет больше смысла для текущего текста. Полезно для влияния на строки, состоящие только из знаков препинания, такие как
"..!".
- rest_indent - int
Указывает количество пикселей, на которое отступают вторая и последующие строки в абзаце.
- ruby_line_leading - int
Количество пикселей пробела, которое добавляется над каждой строкой, содержащей руби-текст. Это в дополнение к
line_leading.
- ruby_style - style or None
Если не None, это должен быть объект стиля. Стиль, который используется для руби-текста.
- shaper - "harfbuzz" or "freetype".
Шейпер (shaper), используемый для текста. Должен быть одним из "harfbuzz" или "freetype". Шейпер harfbuzz более функционален, но работает только в Ren'Py 8, в то время как "freetype" работает и в Ren'Py 7.
Шейпер принимает последовательность символов и превращает ее в последовательность позиционированных глифов. Это используется для таких вещей, как лигатуры, индийские/брахмические языки и комбинирование эмодзи.
- size - int
Размер шрифта на экране. Хотя номинально это значение в пикселях, файлы шрифтов могут иметь творческие интерпретации этого значения.
- slow_abortable - boolean
Если True, щелчок, который достигает объекта Text, приведет к прерыванию медленного вывода текста, что означает, что оставшийся текст будет отображен мгновенно.
- slow_cps - int or True
Если число, показывает текст со скоростью указанного количества символов в секунду. Если True, показывает текст со скоростью, взятой из настройки "Скорость текста".
- slow_cps_multiplier - float
Скорость текста умножается на это число. Это можно использовать, чтобы персонаж говорил быстрее, чем обычно.
- strikethrough - boolean
Если True, через текст проводится линия (зачеркивание).
- textalign - float
Используется, когда строка короче ширины отображаемого текста. Определяет, какая часть дополнительного пространства размещается слева от текста. (и, следовательно, выравнивание текста).
0.0 даст выравнивание по левому краю, 0.5 — по центру, а 1.0 — по правому краю.
- underline - boolean
Если True, к тексту будет добавлено подчеркивание.
- vertical - boolean
Если True, текст будет отображаться вертикально.
Есть несколько оговорок:
Если
shaperустановлен в "freetype", вертикальная компоновка, скорее всего, будет некорректной.Harfbuzz преобразует горизонтальные формы в вертикальные, если эти формы присутствуют в шрифте.
Символы будут располагаться сверху вниз, справа налево, но не будут повернуты. Это означает, что горизонтальные символы будут расположены один над другим.
Если информация о вертикальном тексте отсутствует в шрифте, она будет синтезирована, но может быть неверной. В целом, идеографический текст работает лучше, чем неидеографический.
Свойства стиля окна
Свойства окна используются для определения внешнего вида окон, рамок и кнопок. Свойства полей (margin) также являются частью этой группы.
- background - displayable or None
Отображаемый элемент (displayable), который используется в качестве фона окна. Часто это
Frame(), что позволяет фону масштабироваться вместе с размером окна.Если None, фон не рисуется, но другие свойства функционируют так, как если бы фон присутствовал.
- foreground - displayable or None
Если не None, этот отображаемый элемент рисуется поверх содержимого окна.
- left_padding - int
Расстояние в пикселях между фоном и левой стороной содержимого окна.
- right_padding - int
Расстояние в пикселях между фоном и правой стороной содержимого окна.
- xpadding - int
Эквивалентно установке одинаковых значений для left_padding и right_padding.
- top_padding - int
Расстояние в пикселях между фоном и верхней стороной содержимого окна.
- bottom_padding - int
Расстояние в пикселях между фоном и нижней стороной содержимого окна.
- ypadding - int
Эквивалентно установке одинаковых значений для top_padding и bottom_padding.
- padding - tuple
При задании кортежа из двух элементов эквивалентно установке xpadding и ypadding. При задании кортежа из четырёх элементов эквивалентно установке left_padding, top_padding, right_padding и bottom_padding.
- size_group - string or None
Если не None, это должна быть строка. Ren'Py будет отрисовывать все окна с одинаковым значением size_group в одном и том же размере.
- modal - boolean or callable
Если True, окно считается модальным. События перестанут распространяться через слои, пока курсор мыши находится в пределах окна или кнопки. Если False, окно не является модальным.
Это также может быть вызываемый объект (callable). Если это так, он вызывается с параметрами (ev, x, y, w, h), где ev — это событие pygame или None для обозначения общего события мыши; x и y — координаты относительно окна, а w и h — ширина и высота окна. Если вызываемый объект возвращает true, окно считается модальным. Если возвращает false — нет.
Свойства стиля полосы (Bar)
Полосы (bars) рисуются с желобками (gutters) слева и справа, нажатие на которые может сместить полосу на небольшое значение. Оставшееся пространство — это та часть полосы, которая может изменяться, причём её размер с каждой стороны пропорционален значению полосы как доле от всего диапазона.
Бегунок (thumb) — это область в центре полосы, которую пользователь может перетаскивать.
Когда полоса рисуется, сначала рисуется тень бегунка. Затем левая/нижняя и правая/верхняя стороны полосы, а после — сам бегунок.
Обратите внимание, что используемые стороны полосы зависят от значения свойства bar_vertical. Если оно True, используются верхняя и нижняя стороны. В противном случае — левая и правая.
- bar_vertical - boolean
Если True, полоса имеет вертикальную ориентацию. Если False — горизонтальную.
- bar_invert - boolean
Если True, значение полосы представляется на правой/верхней стороне, а не на левой/нижней.
- bar_resizing - boolean
Если True, мы изменяем размер сторон полосы. Если False, мы отрисовываем стороны полосы в полном размере, а затем обрезаем их.
- left_gutter - int
Размер желобка с левой стороны полосы в пикселях.
- right_gutter - int
Размер желобка с правой стороны полосы в пикселях.
- top_gutter - int
Размер желобка с верхней стороны полосы в пикселях.
- bottom_gutter - int
Размер желобка с нижней стороны полосы в пикселях.
- left_bar - displayable
Отображаемый элемент, используемый для левой стороны полосы.
- right_bar - displayable
Отображаемый элемент, используемый для правой стороны полосы.
- top_bar - displayable
Отображаемый элемент, используемый для верхней стороны полосы.
- bottom_bar - displayable
Отображаемый элемент, используемый для нижней стороны полосы.
- base_bar - displayable
Единый отображаемый элемент, который используется для left_bar/right_bar или top_bar/bottom_bar, в зависимости от ориентации. (Может использоваться вместе с thumb для создания слайдера или полосы прокрутки.)
- thumb - displayable or None
Если не None, это отображаемый элемент, который рисуется поверх разрыва между сторонами полосы.
- thumb_align - float
Выравнивание бегунка относительно полосы. Если полоса и бегунок имеют разные размеры — например, бегунок выше, чем высота горизонтальной полосы — thumb_align можно установить в 0.5, чтобы центры полосы и бегунка были выровнены.
- thumb_shadow - displayable or None
Если не None, это отображаемый элемент, который рисуется поверх разрыва между сторонами полосы.
- thumb_offset - int or tuple of (int, int)
Величина, на которую бегунок перекрывает части полосы, в пикселях. Чтобы левая и правая части полосы выглядели как единое целое, установите это значение равным половине ширины бегунка в пикселях. Это также может быть кортеж, в этом случае первое число используется для смещения левого/верхнего края бегунка, а второе — для смещения правого/нижнего края.
- mouse - string
Стиль курсора мыши, который используется, когда кнопка находится в фокусе. Должен быть одним из стилей в
config.mouse.
- unscrollable - string or None
Определяет, что происходит, если полоса непрокручиваема (если её диапазон установлен в 0, как в случае с viewport, содержащим отображаемый элемент меньшего размера, чем сам viewport). Существует три возможных значения:
NoneОтрисовывает полосу как обычно.
"insensitive"Отрисовывает полосу в неактивном состоянии. Это позволяет полосе изменять свой стиль, чтобы отразить свою бесполезность.
"hide"Полностью отключает отрисовку полосы. Пространство для полосы будет выделено, но в нём ничего не будет нарисовано.
- keyboard_focus - boolean
Если True (по умолчанию), эта кнопка может получить фокус через механизм фокуса клавиатуры, если она вообще может быть сфокусирована. Если False, механизм фокуса клавиатуры пропустит эту кнопку. (Механизм фокуса клавиатуры используется клавиатурами и клавиатуроподобными устройствами, такими как геймпады.)
Свойства стиля контейнера (Box)
Используются для горизонтальных и вертикальных контейнеров-компоновок (box layouts).
- spacing - int
Расстояние в пикселях между элементами этого контейнера.
- first_spacing - int
Если не None, расстояние в пикселях между первым и вторым элементами этого контейнера. Переопределяет свойство spacing.
- box_reverse - boolean
Если True, размещение элементов в контейнере будет обратным. Когда это свойство равно True, hbox будет заполняться справа налево, а vbox — снизу вверх. По умолчанию False.
- box_wrap - boolean
Если True, контейнеры будут переносить содержимое, когда оно достигнет конца строки или столбца. Если False (по умолчанию), они будут выходить за пределы строки.
- box_wrap_spacing - int
Когда box_wrap равно True, это расстояние между перенесёнными строками или столбцами. (То есть, это вертикальное расстояние между строками в hbox с переносом и горизонтальное расстояние между столбцами в vbox с переносом.)
- box_align - float or None
Определяет выравнивание строк или столбцов в контейнере. Если 0.0 (по умолчанию), строки выравниваются по левому краю, а столбцы — по верхнему. Если 0.5, перенесённые строки будут центрированы.
Когда это свойство не равно None, дочернему элементу не будет предложено дополнительное пространство при установке
xfillилиyfill, игнорируя позицию дочернего элемента в основном направлении контейнера.
- order_reverse - boolean
Если False (по умолчанию), элементы в контейнере будут отрисовываться от первого к последнему, причём первый элемент будет находиться под вторым, и так далее. Если True, этот порядок будет обратным, и первый элемент в контейнере будет находиться над всеми остальными элементами.
- box_justify - boolean or "first" or "all"
Если не False, содержимое контейнера будет выровнено по ширине — то есть, расстояние между элементами внутри контейнера будет скорректировано так, чтобы они равномерно занимали всё пространство контейнера. True приведёт к выравниванию всех строк, кроме последней. "first" приведёт к выравниванию только первой строки. "all" приведёт к выравниванию всех строк, включая последнюю. Выровненные строки не подчиняются box_align, за исключением случаев, когда в строке только один элемент.
Когда это свойство не равно false, дочернему элементу не будет предложено дополнительное пространство при установке
xfillилиyfill, игнорируя позицию дочернего элемента в основном направлении контейнера.
Свойства стиля сетки (Grid)
Это свойства, используемые отображаемыми элементами grid и vpgrid. Свойства полей (margin) также являются частью этой группы.
- spacing - int
Расстояние в пикселях между ячейками сетки.
- xspacing - int or None
Расстояние в пикселях между ячейками сетки по горизонтали. Имеет приоритет над свойством spacing, если не равно None.
- yspacing - int or None
Расстояние в пикселях между ячейками сетки по вертикали. Имеет приоритет над свойством spacing, если не равно None.
Свойства стиля фиксированной компоновки (Fixed)
Используются с фиксированной компоновкой (fixed layout).
- fit_first - boolean or "width" or "height"
Если True, размер фиксированной компоновки уменьшается до размера первого элемента в ней. Если "width", изменяется только ширина (компоновка будет заполнять экран по вертикали). Аналогично, "height" изменяет только высоту.
Позиция дочернего элемента игнорируется для целей fit_first.
- xfit - boolean
Если True, размер фиксированной компоновки уменьшается по горизонтали, чтобы соответствовать правому краю самого правого дочернего элемента.
- yfit - boolean
Если True, размер фиксированной компоновки уменьшается по вертикали, чтобы соответствовать нижнему краю самого нижнего дочернего элемента.
Когда эти свойства заданы, дочерним элементам сначала предлагается вся область, выделенная для fixed-компоновки её родителем. После того как размер и расположение дочерних элементов становятся известны, эти свойства используются для определения размера самой fixed-компоновки.
Свойства полей (Margin)
Свойства полей используются для добавления прозрачного пространства вокруг некоторых отображаемых элементов. В первую очередь: окон, рамок, кнопок и вокруг сеток grid или vpgrid.
- left_margin - int
Размер прозрачного пространства слева от отображаемого элемента в пикселях.
- right_margin - int
Размер прозрачного пространства справа от отображаемого элемента в пикселях.
- xmargin - int
Эквивалентно установке одинаковых значений для left_margin и right_margin.
- top_margin - int
Размер прозрачного пространства над отображаемым элементом в пикселях.
- bottom_margin - int
Размер прозрачного пространства под отображаемым элементом в пикселях.
- ymargin - int
Эквивалентно установке одинаковых значений для top_margin и bottom_margin.
- margin - tuple
При задании кортежа из двух элементов эквивалентно установке xmargin и ymargin. При задании кортежа из четырёх элементов эквивалентно установке left_margin, top_margin, right_margin и bottom_margin.