728x90
반응형
- 개요
이번에는 이전에 만든 텍스트 Add-On으로 생성하는 대화상자의 레이아웃을
정해진 모양이 아닌 설계자가 원하는 모양으로 디자인하는 방법을 알아본다
레이아웃의 디자인은 레이아웃을 포함하는 클래스의 draw 함수를 오버라이드함으로써 수정할 수 있다
- 코드 수정
...
class WM_OT_TextOp(bpy.types.Operator):
...
def draw(self, context):
# layout setting
layout = self.layout
layout.label(text="Sample Text")
layout.prop(self, "text")
layout.prop(self, "scale")
layout.separator(factor=2)
# box setting
box = layout.box()
row = box.row()
row.prop(self, "center")
if self.center == True:
row.label(text="Align with World Center", icon='WORLD')
else:
row.label(text="Align with Local Center", icon='ORIENTATION_LOCAL')
layout.separator(factor=2)
# box - row setting
row = box.row()
row.prop(self, "extrude")
if self.extrude == True:
row.prop(self, "extrude_amount")
...
...
기존의 클래스에 위와 같이 draw 함수를 추가하였다
draw 함수의 로직은 다음과 같이 구성하였다
- 팝업되는 대화상자의 전체 레이아웃
- 생성할 글씨와 글씨 크기는 레이아웃에 배치
- separator 속성을 사용하여 2만큼의 간격 추가
- 레이아웃 안에 box를 추가하여 공간을 분리
- 생성할 글씨의 가운데 정렬 설정은 박스에 배치
- 설정 여부에 따라 동일한 행에 다른 메세지 출력
- separator 속성을 사용하여 2만큼의 간격 추가
- box안에 다른 행을 추가하여 박스안에서의 행을 분리
- 생성할 글씨의 extrude 여부 설정
- extrude하는 경우 extrude할 크기를 설정하는 슬라이더 활성화
- 최종 실행 결과
728x90
반응형
'blender > blender python' 카테고리의 다른 글
| register 함수 / unregister 함수 개선 (0) | 2025.07.23 |
|---|---|
| 단축키 (0) | 2025.07.23 |
| 커스텀 노드 그룹 (0) | 2025.07.16 |
| 텍스트 Add-On (0) | 2025.07.09 |
| 대화 상자 (0) | 2025.07.09 |