스타일 속성
스타일에 연결된 스타일 속성은 디스플레이어블의 표시 방식을 제어합니다. 접두사 없이 지정하면 모든 상태에 적용되며, 접두사를 붙이면 특정 상태에만 적용됩니다.
스타일 속성 접두사
스타일 속성에 접두사를 붙이면 포커스나 선택 상태에 따라 디스플레이어블의 모양을 바꿀 수 있습니다. 예를 들어 마우스를 올렸을 때 버튼 색상을 바꾸거나, 해당 버튼의 선택지가 현재 선택되어 있음을 나타낼 수 있습니다.
디스플레이어블에는 다섯 가지 상태가 있습니다.
- 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는 텍스트 색상을 설정합니다.
# The button background is gray when insensitive, light
# blue when hovered, and dark blue otherwise.
style button:
background "#006"
insensitive_background "#444"
hover_background "#00a"
# The button text is yellow when selected, and white
# otherwise.
style button_text:
color "#fff"
selected_color "#ff0"
스타일 속성 값
각 스타일 속성은 특정 종류의 데이터를 받습니다. 대부분은 Python 표준 형식이지만 일부는 별도 형식입니다. 다음은 스타일 속성에서 받는 별도 값 형식의 설명입니다.
- position
위치 값은 포함 영역의 왼쪽 위 모서리에 대한 상대 위치를 지정합니다. 배치와 크기에서는 레이아웃이 있으면 그 영역, 없으면 화면이 포함 영역입니다. 기준점에서는 디스플레이어블 자체의 크기가 포함 영역입니다.
위치 값은 형식에 따라 다음과 같이 해석합니다.
- int (예: 0, 1, 37, 42)
정수는 포함 영역의 왼쪽 또는 위쪽에서 떨어진 픽셀 수입니다.
- float (예: 0.0, 0.5, 1.0)
실수는 포함 영역의 비율입니다. 예를 들어 0.5는 두 변 사이의 중간 지점이고, 1.0은 오른쪽 또는 아래쪽 변입니다.
- absolute(value, /)
예를 들어
absolute(100.25)또는a와b가 실수나 정수일 수 있을 때의absolute(a+b)입니다.absolute숫자는 서브픽셀 정밀도로 렌더링할 때 화면의 왼쪽 또는 위쪽에서 떨어진 픽셀 수로 해석합니다.
- position(absolute, relative, /)
예:
position(-10, .5).위에서 설명한 절대 위치 absolute와 상대 위치 relative를 조합합니다. 두 요소를 더해 최종 위치를 구합니다.
두 매개변수를 항상 모두 전달해야 합니다. 그렇지 않으면 결과가 정의되지 않을 수 있습니다.
- displayable
모든 디스플레이어블이 가능합니다. "[prefix_]" 치환을 포함하면 아래 설명처럼 접두사를 검색합니다.
- color
Ren'Py의 색상은 # 뒤에 세 개 또는 네 개의 16진수 요소가 오는 문자열로 표현할 수 있습니다. 각 요소는 한 자리 또는 두 자리 16진수 색상 코드입니다.
세 요소는 빨강, 초록, 파랑을 나타내고, 네 요소는 빨강, 초록, 파랑, 알파를 나타냅니다. 예를 들면 다음과 같습니다.
"#f00"과"#ff0000"은 불투명한 빨강입니다."#0f08"과"#00ff0080"은 반투명한 초록입니다.
세 요소 색상 표기는 HTML과 같습니다.
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_]"를 접두사로 바꾼 뒤 그 이름의 불러올 수 있는 파일이나 이미지가 있는지 확인합니다. 있으면 검색을 끝내고 해당 디스플레이어블을 사용합니다. 없으면 다음 접두사로 진행합니다.
스타일 접두사는 컨테이너, 트랜스폼, 프레임 등 사용자 입력을 받지 않는 디스플레이어블을 통과해 전달됩니다.
예를 들어 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"
전체 스타일 속성 목록
스타일 속성은 여러 디스플레이어블의 모양을 제어합니다. 모든 속성이 모든 디스플레이어블에 적용되는 것은 아니므로 그룹으로 나누었습니다.
위치 스타일 속성
모든 디스플레이어블에 적용되며, 주로 레이아웃이 할당한 영역 안의 위치를 제어합니다. 레이아웃이 없으면 화면상의 위치를 제어합니다.
- 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을 같은 값으로 설정하여 너비를 정합니다. 실수이면 포함 영역의 너비에 대한 비율입니다.
- ysize - int or float
yminimum과 ymaximum을 같은 값으로 설정하여 높이를 정합니다. 실수이면 포함 영역의 높이에 대한 비율입니다.
- xysize - tuple of (int or float, int or float)
xsize를 튜플의 첫 요소, ysize를 두 번째 요소로 설정하는 것과 같습니다.
- xfill - boolean
참이면 사용 가능한 가로 공간을 모두 채우도록 늘어납니다. 그렇지 않으면 자식을 담는 데 필요한 크기만 차지합니다.
크기를 바꿀 수 있는 디스플레이어블에서만 작동합니다.
- yfill - boolean
참이면 사용 가능한 세로 공간을 모두 채우도록 늘어납니다. 그렇지 않으면 자식을 담는 데 필요한 크기만 차지합니다.
크기를 바꿀 수 있는 디스플레이어블에서만 작동합니다.
- 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을 알맞은 값으로 설정하여 처리합니다.
모든 디스플레이어블과 레이아웃에서 작동하는 것은 아닙니다.
- mipmap - boolean or None
이 디스플레이어블이 만든 텍스처에 밉맵을 사용할지 제어합니다.
Text(),Movie(), 디졸브 등 일부에만 적용됩니다.None이면
config.mipmap_text,config.mipmap_movies,config.mipmap_dissolves같은 설정 변수에서 기본값을 가져옵니다.
텍스트 스타일 속성
- antialias - boolean
기본값인 True이면 TrueType 글꼴 텍스트에 안티앨리어싱을 적용합니다.
- adjust_spacing - boolean or str
True이면 실제 그리기 해상도의 텍스트 간격을 가상 해상도의 간격에 맞춥니다. 텍스트를 담은 프레임 등의 컨테이너 크기가 바뀌지 않도록 보장합니다.
False이면 텍스트 크기를 조정하지 않습니다. 모든 창 크기에서 텍스트를 배치할 공간을 충분히 확보할 책임은 제작자에게 있습니다.
"horizontal"이면 가로 방향으로만, "vertical"이면 세로 방향으로만 텍스트를 조정합니다.
대부분의 텍스트에서 기본값은 True지만
input에서는 False입니다.
- 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
이모지 문자를 렌더링할 글꼴입니다. 하나 이상의 이모지 시퀀스를 만나고 font 텍스트 태그를 사용하지 않을 때 자동으로 사용합니다.
- 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"
세로 방향에만 힌팅하는 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
참이면 기울임꼴로 렌더링합니다. TrueType 글꼴은 보통 합성 방식으로 기울기를 늘립니다.
config.font_replacement_map으로 글꼴이 대체될 수도 있습니다.
- justify - boolean
True이면 단어 사이에 공백을 추가해 각 줄의 양쪽 여백을 맞춥니다. 문단의 마지막 줄에는 적용하지 않습니다.
- kerning - float
각 문자 쌍 사이에 더할 픽셀 수인 자간 조정값입니다. 음수이면 간격을 줄입니다.
- language - string
줄바꿈과 일부 텍스트 변환에 사용할 언어 계열을 제어합니다. 가능한 값은 다음과 같습니다.
"unicode"(기본값)대부분의 언어에 적합한 유니코드 줄바꿈 알고리즘을 사용합니다.
"japanese-strict"일본어를 엄격하게 배치합니다. 작은 가나와 장음 기호 앞에서는 줄바꿈을 금지합니다.
"japanese-normal"일본어를 보통 방식으로 배치합니다. 작은 가나, 장음 기호, 일부 하이픈 앞에서 줄바꿈을 허용합니다.
"japanese-loose"일본어를 느슨하게 배치합니다. 작은 가나, 장음 기호, 반복 기호, 분리 불가 문자, 가운데 문장부호, 접미사 앞에서 줄바꿈을 허용하며, 접두사 앞에서도 허용합니다.
"korean-with-spaces"공백으로 구분한 한국어에 사용합니다. 인접한 한글 문자 사이의 줄바꿈을 막습니다.
"thaic90"C90 인코딩을 지원하는 글꼴로 태국어를 표시할 때 사용합니다. 문자 시퀀스를 PUA 글리프 코드 포인트에 연결해 글리프를 올바르게 배치합니다. 줄바꿈은 유니코드 알고리즘을 사용합니다.
대부분의 경우 태국어는 기본값인
"unicode"를 사용해야 합니다. Ren'Py 8.4 이전 버전이나 셰이퍼로"freetype"을 사용할 때만 필요합니다."western"공백에서만 줄바꿈을 허용합니다. 대부분의 언어에 적합합니다.
"anywhere"루비가 없는 곳이라면 어디서든 줄바꿈을 허용합니다.
일본어의 세 줄바꿈 모드는 CSS3 텍스트 모듈을 따릅니다.
- layout - string
단어를 각 줄에 배분하는 방식을 제어합니다. 가능한 값은 다음과 같습니다.
"tex"(기본값)마지막 줄을 제외한 줄 길이의 차이를 최소화하는 Knuth-Plass 줄바꿈 알고리즘을 사용합니다.
"subtitle"Knuth-Plass 알고리즘을 사용하되 모든 줄의 길이를 균등하게 하려고 시도합니다.
"greedy"단어가 들어갈 공간이 있는 첫 번째 줄에 배치합니다.
"nobreak"줄바꿈을 하지 않습니다.
- line_leading - int
각 줄 위에 추가할 픽셀 단위 간격입니다.
- line_overlap_split - int
글자를 서서히 표시할 때 두 줄이 겹치면 겹치는 영역 중 이 픽셀 수만큼 위쪽 줄에 할당합니다. 위쪽 글자의 아래가 잘리면 늘리세요.
- line_spacing - int
각 줄 아래에 추가할 픽셀 단위 간격입니다.
- min_width - int
각 줄의 최소 너비를 설정합니다. 더 짧은 줄에는 이 길이까지 여백을 추가하며, 여백 위치는
textalign으로 지정합니다.
- newline_indent - boolean
참이면 문자열의 각 줄바꿈 뒤에
first_indent를 사용합니다. 그렇지 않으면rest_indent를 사용합니다.
- outlines - list of tuple of (int, color, int, int)
텍스트 뒤에 그릴 외곽선 리스트입니다. 튜플 하나가 외곽선 하나를 지정하며 뒤에서 앞으로 그립니다.
(size, color, xoffset, yoffset) 튜플 리스트입니다. size는 글꼴을 확장할 픽셀 수, color는 외곽선 색상, xoffset과 yoffset은 외곽선을 이동할 픽셀 수입니다.
크기를 0으로, 오프셋을 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
일부 유니코드 문자는 이모지와 일반 문자 표현이 모두 있습니다. 이런 문자를 이모지로 표시할지 선택합니다.
- reading_order - string
RTL 지원이 켜져 있을 때 읽기 방향을 제어합니다. 주로 문장부호로만 이루어진 줄처럼 방향이 중립적인 줄에 영향을 줍니다.
None기본값이며 텍스트에 따라 읽기 순서를 결정합니다. 중립적인 줄 대부분은 왼쪽에서 오른쪽으로 취급합니다.
"ltr"오른쪽에서 왼쪽으로 쓰는 문자가 대부분이어도 왼쪽에서 오른쪽으로 강제 표시합니다.
"rtl"왼쪽에서 오른쪽으로 쓰는 문자가 대부분이어도 오른쪽에서 왼쪽으로 강제 표시합니다.
"wltr"왼쪽에서 오른쪽을 우선하되 현재 텍스트에 더 적합하면 반대 방향으로 전환합니다.
"..!"처럼 문장부호뿐인 줄에 유용합니다."wrtl"오른쪽에서 왼쪽을 우선하되 현재 텍스트에 더 적합하면 반대 방향으로 전환합니다.
"..!"처럼 문장부호뿐인 줄에 유용합니다.
- rest_indent - int
문단의 두 번째 이후 줄을 들여쓸 픽셀 수입니다.
- ruby_line_leading - int
루비 텍스트가 있는 각 줄 위에 추가할 픽셀 간격입니다.
line_leading에 더해집니다.
- ruby_style - style or None
None이 아니라면 루비 텍스트에 사용할 스타일 객체여야 합니다.
- shaper - "harfbuzz" or "freetype".
텍스트에 사용할 셰이퍼입니다. "harfbuzz" 또는 "freetype"이어야 합니다. harfbuzz는 기능이 더 풍부하지만 Ren'Py 8에서만 작동하고, "freetype"은 Ren'Py 7에서도 작동합니다.
셰이퍼는 문자 시퀀스를 위치가 정해진 글리프 시퀀스로 변환합니다. 합자, 인도/브라흐미 계열 언어, 이모지 조합 등에 사용합니다.
- size - int
화면에 표시할 글꼴 크기입니다. 명목상 픽셀 단위지만 글꼴 파일이 이 값을 다르게 해석할 수 있습니다.
- slow_abortable - boolean
True이면 Text 객체에 도달한 클릭이 서서히 표시하기를 중단하여 나머지 텍스트를 즉시 표시합니다.
- slow_cps - int or True
숫자이면 초당 해당 글자 수로 표시합니다. True이면 텍스트 속도(Text Speed) 환경설정의 속도를 사용합니다.
- slow_cps_multiplier - float
텍스트 속도에 이 숫자를 곱합니다. 보통보다 빠르게 말하는 캐릭터 등에 사용할 수 있습니다.
- strikethrough - boolean
True이면 텍스트에 취소선을 긋습니다.
- textalign - float
텍스트 줄이 디스플레이어블 너비보다 짧을 때 남는 공간 중 왼쪽에 놓을 비율을 결정합니다. 즉, 텍스트 정렬을 정합니다.
0.0은 왼쪽, 0.5는 가운데, 1.0은 오른쪽 정렬입니다.
- underline - boolean
True이면 밑줄을 추가합니다.
창 스타일 속성
창, 프레임, 버튼의 모양을 지정합니다. 바깥 여백 스타일 속성도 이 그룹에 속합니다.
- background - displayable or None
창 배경에 사용할 디스플레이어블입니다. 창 크기에 따라 배경 크기를 바꿀 수 있는
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이 아니라면 문자열이어야 합니다. size_group 값이 같은 모든 창을 같은 크기로 렌더링합니다.
- modal - boolean or callable
True이면 모달 창으로 취급합니다. 마우스가 창이나 버튼 안에 있으면 이벤트가 아래 레이어로 전달되지 않습니다. False이면 모달이 아닙니다.
호출 가능한 함수일 수도 있습니다. (ev, x, y, w, h)로 호출하며, ev는 pygame 이벤트 또는 일반 마우스 이벤트를 뜻하는 None입니다. x, y는 창 기준 좌표, w, h는 창의 높이와 너비입니다. 참을 반환하면 모달로, 거짓이면 비모달로 취급합니다.
바 스타일 속성
바의 왼쪽과 오른쪽에는 클릭하면 값을 조금 바꿀 수 있는 여백이 있습니다. 나머지는 바뀔 수 있는 영역이며, 양쪽 크기는 전체 범위에 대한 현재 값의 비율에 비례합니다.
손잡이는 사용자가 끌 수 있는 바 가운데의 영역입니다.
먼저 손잡이 그림자, 다음으로 왼쪽/아래쪽과 오른쪽/위쪽 영역, 마지막으로 손잡이를 그립니다.
사용하는 방향은 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이 됩니다. 세 값이 가능합니다.
None바를 정상 렌더링합니다.
"insensitive"insensitive 상태로 렌더링하여 사용할 수 없음을 스타일로 표현합니다.
"hide"바를 전혀 렌더링하지 않습니다. 공간은 할당하지만 아무것도 그리지 않습니다.
- keyboard_focus - boolean
기본값인 True이면 포커스를 받을 수 있는 버튼을 키보드 포커스 체계로 선택할 수 있습니다. False이면 건너뜁니다. 이 체계는 키보드와 게임패드 같은 유사 입력 장치에서 사용합니다.
박스 스타일 속성
가로 및 세로 박스 레이아웃에 사용합니다.
- spacing - int
박스 요소 사이의 픽셀 단위 간격입니다.
- first_spacing - int
None이 아니면 첫 요소와 두 번째 요소 사이의 픽셀 간격입니다. spacing보다 우선합니다.
- box_reverse - boolean
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이면 순서를 뒤집어 첫 요소가 모든 다른 요소 위에 놓입니다.
격자 스타일 속성
grid와 vpgrid에서 사용합니다. 바깥 여백 스타일 속성도 이 그룹에 속합니다.
- spacing - int
격자 셀 사이의 픽셀 단위 간격입니다.
- xspacing - int or None
셀 사이 가로 간격입니다. 단위는 픽셀이며 None이 아니면 spacing보다 우선합니다.
- yspacing - int or None
셀 사이 세로 간격입니다. 단위는 픽셀이며 None이 아니면 spacing보다 우선합니다.
Fixed 스타일 속성
fixed 레이아웃에 사용합니다.
- fit_first - boolean or "width" or "height"
True이면 레이아웃 크기를 첫 요소의 크기로 줄입니다. "width"이면 너비만 바꾸고 세로로는 화면을 채웁니다. "height"이면 높이만 바꿉니다.
fit_first를 적용할 때 자식의 위치는 무시합니다.
- xfit - boolean
True이면 가장 오른쪽 자식의 오른쪽 변에 맞춰 fixed의 너비를 줄입니다.
- yfit - boolean
True이면 가장 아래쪽 자식의 아래쪽 변에 맞춰 fixed의 높이를 줄입니다.
이 속성들을 지정하면 먼저 부모가 fixed에 준 전체 영역을 자식에게 제공합니다. 자식의 크기와 위치를 알게 된 뒤 이 속성으로 fixed의 크기를 결정합니다.
바깥 여백 스타일 속성
창, 프레임, 버튼 및 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을 각각 설정합니다.