스타일 속성

스타일에 연결된 스타일 속성은 디스플레이어블의 표시 방식을 제어합니다. 접두사 없이 지정하면 모든 상태에 적용되며, 접두사를 붙이면 특정 상태에만 적용됩니다.

스타일 속성 접두사

스타일 속성에 접두사를 붙이면 포커스나 선택 상태에 따라 디스플레이어블의 모양을 바꿀 수 있습니다. 예를 들어 마우스를 올렸을 때 버튼 색상을 바꾸거나, 해당 버튼의 선택지가 현재 선택되어 있음을 나타낼 수 있습니다.

디스플레이어블에는 다섯 가지 상태가 있습니다.

insensitive

사용자가 디스플레이어블과 상호작용할 수 없을 때 사용합니다.

idle

포커스가 없고 선택되지 않았을 때 사용합니다.

hover

포커스가 있지만 선택되지 않았을 때 사용합니다.

selected_idle

포커스가 없고 선택되었을 때 사용합니다.

selected_hover

포커스가 있고 선택되었을 때 사용합니다.

Button, Bar 및 그 변형들은 이벤트에 따라 자신과 자식의 상태를 갱신합니다. 예를 들어 선택되지 않은 버튼에 마우스를 올리면 버튼과 모든 자식이 hover 상태가 됩니다.

스타일 속성 접두사로 상태별 속성을 설정할 수 있습니다. 하나의 접두사로 여러 상태의 속성이 함께 설정되도록 포함 관계가 정의되어 있습니다.

포함 관계는 다음과 같습니다.

접두사

접두사가 포함하는 상태

(접두사 없음)

insensitive, idle, hover, selected_idle, selected_hover

idle_

idle, selected_idle

hover_

hover, selected_hover

selected_

selected_idle, selected_hover

insensitive_

insensitive

selected_idle_

selected_idle

selected_hover_

selected_hover

selected_insensitive_

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 인스턴스도 색상으로 사용할 수 있습니다.

전체 스타일 속성 목록

스타일 속성은 여러 디스플레이어블의 모양을 제어합니다. 모든 속성이 모든 디스플레이어블에 적용되는 것은 아니므로 그룹으로 나누었습니다.

위치 스타일 속성

모든 디스플레이어블에 적용되며, 주로 레이아웃이 할당한 영역 안의 위치를 제어합니다. 레이아웃이 없으면 화면상의 위치를 제어합니다.

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을 같은 값으로 설정하여 너비를 정합니다. 실수이면 포함 영역의 너비에 대한 비율입니다.

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에서 값을 찾습니다.

텍스트의 하이퍼링크에 관한 함수 세 개의 튜플입니다.

첫 번째는 하이퍼링크 스타일 함수입니다. 링크의 인수를 인수 하나로 받아 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이면 밑줄을 추가합니다.

vertical -  boolean

True이면 세로쓰기로 렌더링합니다.

여러 주의 사항이 있습니다.

  • shaper가 "freetype"이면 세로 배치가 잘못될 가능성이 높습니다.

  • Harfbuzz는 글꼴에 세로형 글리프가 있으면 가로형을 세로형으로 바꿉니다.

  • 문자는 위에서 아래, 오른쪽에서 왼쪽 순으로 배치하며 회전하지 않습니다. 따라서 가로형 문자는 하나씩 위아래로 놓입니다.

  • 글꼴에 세로쓰기 정보가 없으면 합성하지만 잘못될 수 있습니다. 일반적으로 표의문자가 그 밖의 문자보다 잘 작동합니다.

창 스타일 속성

창, 프레임, 버튼의 모양을 지정합니다. 바깥 여백 스타일 속성도 이 그룹에 속합니다.

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는 창의 높이와 너비입니다. 참을 반환하면 모달로, 거짓이면 비모달로 취급합니다.

버튼 스타일 속성

child -  displayable or None

None이 아니면 버튼 자식을 대체할 디스플레이어블입니다. 예를 들어 insensitive_child로 사용하면 비활성 버튼의 내용을 잠김 표시 이미지로 바꿀 수 있습니다.

hover_sound -  string

버튼이 포커스를 얻을 때 재생할 소리입니다.

activate_sound -  string

버튼을 실행하거나 클릭할 때 재생할 소리입니다. 바나 Drag가 활성화될 때도 재생합니다.

mouse -  string

버튼에 포커스가 있을 때 사용할 마우스 스타일입니다. config.mouse의 스타일 중 하나여야 합니다.

focus_mask -  multiple

포커스를 받고 클릭할 수 있는 버튼 영역을 제어하는 마스크입니다. 형식에 따라 다음과 같이 해석합니다.

Displayable

디스플레이어블의 투명하지 않은 영역에서 버튼이 포커스를 받습니다.

True

버튼 자체를 디스플레이어블로 사용합니다. 즉, 버튼의 투명하지 않은 영역에서 포커스를 받습니다.

callable

디스플레이어블이 아닌 호출 가능 객체, 예를 들어 함수, 메서드, __call__ 메서드가 있는 객체이면 왼쪽 위 모서리 기준 x, y 오프셋 두 인수로 호출합니다.

두 인수로 호출한 결과가 호출 가능 객체이면 x, y 오프셋과 디스플레이어블의 너비, 높이 네 인수로 다시 호출합니다.

함수가 참을 반환하면 디스플레이어블이 포커스를 받습니다.

None

None이면 버튼 전체가 포커스를 받을 수 있습니다.

keyboard_focus -  boolean

기본값인 True이면 포커스를 받을 수 있는 버튼을 키보드 포커스 체계로 선택할 수 있습니다. False이면 건너뜁니다. 이 체계는 키보드와 게임패드 같은 유사 입력 장치에서 사용합니다.

keyboard_focus_insets -  (int, int, int, int) or None

None이 아니라면 정수 네 개의 튜플이어야 합니다. 키보드 포커스에 사용할 사각형의 왼쪽, 위쪽, 오른쪽, 아래쪽을 줄일 픽셀 수입니다.

버튼이 겹칠 때 유용합니다. 키보드 포커스 알고리즘은 겹치는 버튼에서 작동하지 않으므로 내부 크기를 줄여 작동하게 할 수 있습니다.

key_events -  boolean

True이면 키보드 이벤트를 버튼 자식에게 전달합니다. False이면 전달하지 않습니다. 기본 스타일에서는 마우스를 올린 동안 True, 그 밖에는 False입니다.

True로 설정하면 버튼에 포커스가 없어도 내부 입력란에 키보드 이벤트를 전달할 수 있습니다.

바 스타일 속성

바의 왼쪽과 오른쪽에는 클릭하면 값을 조금 바꿀 수 있는 여백이 있습니다. 나머지는 바뀔 수 있는 영역이며, 양쪽 크기는 전체 범위에 대한 현재 값의 비율에 비례합니다.

손잡이는 사용자가 끌 수 있는 바 가운데의 영역입니다.

먼저 손잡이 그림자, 다음으로 왼쪽/아래쪽과 오른쪽/위쪽 영역, 마지막으로 손잡이를 그립니다.

사용하는 방향은 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이면 순서를 뒤집어 첫 요소가 모든 다른 요소 위에 놓입니다.

box_justify -  boolean or "first" or "all"

False가 아니면 요소 사이 간격을 조정해 박스 전체 크기에 고르게 배분합니다. True이면 마지막 줄을 제외한 줄, "first"이면 첫 줄만, "all"이면 마지막을 포함한 모든 줄에 적용합니다. 줄에 요소가 하나뿐인 경우를 제외하면 box_align을 따르지 않습니다.

거짓이 아니면 xfill이나 yfill을 설정해도 자식에게 추가 공간을 제공하지 않고 박스 주 방향의 자식 위치를 무시합니다.

격자 스타일 속성

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을 각각 설정합니다.