테이블 속성
테이블 속성 (Uitable Properties)
표 형식의 데이터를 화면에 보여주고 사용자가 직접 편집할 수 있게 하려면 테이블(uitable) 객체를 써요. 이 문서에서는 uitable 객체의 속성을 항목별로 정리해요.
출처: 문서
본문
uitable 객체(see uitable)의 속성은 외형(Appearance), 콜백 실행(Callback Execution), 생성/삭제(Creation/Deletion), 표시(Display), 마우스 상호작용(Mouse Interaction), 객체 식별(Object Identification), 객체 위치(Object Position), 부모/자식(Parent/Children), 테이블 데이터(Table Data), 테이블 동작(Table Operation), 텍스트 외형(Text Appearance) 범주로 나뉘어요.
외형 (Appearance)
backgroundcolor: colorspec, 기본 2×3 double
3-원소 RBG 벡터로 지정한 테이블 배경 색이에요. backgroundcolor가 여러 행이면, "rowstriping" 속성이 켜져 있을 때 색이 반복해서 순환돼요.
foregroundcolor: colorspec, 기본 [0 0 0]
이 테이블의 데이터 텍스트 색이에요. colorspec 참고.
rowstriping: "off" | {"on"}
테이블 배경 색이 행마다 다른 색을 사용할지 나타내는 설정이에요. 색은 "backgroundcolor" 속성에서 반복 패턴으로 가져와요.
콜백 실행 (Callback Execution)
busyaction: "cancel" | {"queue"}
다른 객체의 실행 중인 콜백을 방해할 수 없을 때 이 객체의 콜백 속성 실행을 Octave가 어떻게 처리할지 정의해요. 현재 실행 중인 콜백 객체의 interruptible 속성이 "off"로 설정된 경우에만 관련돼요. 방해하려는 콜백 객체의 busyaction 속성이 그 콜백을 대기열에 넣을지("queue"(기본)) 버릴지("cancel")를 나타내요. Callbacks 섹션 참고.
celleditcallback: 문자열, 기본 [](0x0)
테이블 셀이 편집될 때마다 실행될 유효한 Octave 표현식으로 된 문자열이에요.
cellselectioncallback: 문자열, 기본 [](0x0)
테이블 셀이 선택될 때마다 실행될 유효한 Octave 표현식으로 된 문자열이에요.
interruptible: "off" | {"on"}
이 객체의 콜백 함수가 다른 콜백에 의해 방해받을 수 있는지 지정해요. 기본적으로 interruptible은 "on"이고, drawnow, figure, waitfor, getframe, pause 함수를 사용하는 콜백은 결국 방해받게 돼요. Callbacks 섹션 참고.
keypressfcn: 문자열 | 함수 핸들, 기본 [](0x0)
테이블 객체가 포커스를 가진 상태에서 키를 눌렀을 때 실행되는 콜백 함수예요. 함수의 첫 번째 인자는 호출하는 테이블의 핸들이에요. 두 번째 인자는 다음 멤버를 가진 이벤트 구조체를 담아요.
Character:— 키의 ASCII 값Modifier:— 키와 함께 눌린 수정자(modifier)를 나타내는 문자열을 담은 셀 배열Key:— 키의 소문자 설명Source:— 콜백 함수를 실행하는 객체의 그래픽스 핸들EventName:— "KeyPress"
리스너 함수 작성 방법은 Callbacks 섹션 참고.
keyreleasefcn: 문자열 | 함수 핸들, 기본 [](0x0)
테이블 객체가 포커스를 가진 상태에서 키를 뗐을 때 실행되는 콜백 함수예요. 인자는 keypressfcn과 같고, EventName은 "KeyRelease"예요. 리스너 함수 작성 방법은 Callbacks 섹션 참고.
생성/삭제 (Creation/Deletion)
beingdeleted: {"off"} | "on"
함수가 객체 삭제를 시작했음을 나타내는 속성이에요. beingdeleted는 객체가 더 이상 존재하지 않을 때까지 true로 설정돼요.
createfcn: 문자열 | 함수 핸들, 기본 [](0x0)
uitable이 생성된 직후 실행되는 콜백 함수예요. root 객체의 기본 속성으로 설정해요. 예: set (groot, "defaultuitablecreatefcn", 'disp ("uitable created!")'). 리스너 함수 작성 방법은 Callbacks 섹션 참고.
deletefcn: 문자열 | 함수 핸들, 기본 [](0x0)
uitable이 삭제되기 직전에 실행되는 콜백 함수예요. 리스너 함수 작성 방법은 Callbacks 섹션 참고.
표시 (Display)
clipping: "off" | {"on"}
clipping이 "on"이면 uitable이 부모 axes 한계 안에서 잘려요.
visible: "off" | {"on"}
visible이 "off"면 uitable이 화면에 렌더링되지 않아요.
마우스 상호작용 (Mouse Interaction)
buttondownfcn: 문자열 | 함수 핸들, 기본 [](0x0)
리스너 함수 작성 방법은 Callbacks 섹션 참고.
contextmenu: 그래픽스 핸들, 기본 [](0x0)
현재 이 uitable 객체와 연결된 uicontextmenu 객체의 그래픽스 핸들이에요.
hittest: "off" | {"on"}
uitable이 마우스 이벤트를 처리할지, 아니면 객체의 조상으로 전달할지 지정해요. 활성화되면 객체가 마우스 클릭에 반응할 수 있어요. "buttondownfcn"을 평가하고, uicontextmenu를 표시하고, 결국 root "currentobject"가 될 수 있어요. 이 속성은 객체가 마우스 클릭을 받을 수 있을 때만 관련되며, 이는 "pickableparts" 속성으로 결정돼요. pickableparts 속성 참고.
pickableparts: "all" | "none" | {"visible"}
uitable이 마우스 클릭을 받을지 지정해요. 기본적으로 pickableparts는 "visible"이고, uitable의 보이는 부분만(또는 그 자식만) 마우스 클릭에 반응할 수 있어요. "all"이면 보이는 부분과 보이지 않는 부분(또는 자식) 모두 반응할 수 있어요. "none"이면 객체에 대한 마우스 클릭을 무시하고 그 아래에 있는 객체에 전달해요. 객체가 마우스 클릭을 받도록 설정되면 "hittest" 속성이 클릭 처리 방식을 결정해요. hittest 속성 참고.
selected: {"off"} | "on"
이 uitable이 선택되었는지 나타내는 속성이에요.
selectionhighlight: "off" | {"on"}
selectionhighlight가 "on"이면 uitable의 선택 상태를 시각적으로 강조해요.
tooltipstring: 문자열, 기본 ""
마우스 포인터가 테이블 객체 위에 떠 있을 때 툴팁에 나타나는 텍스트 문자열이에요.
객체 식별 (Object Identification)
tag: 문자열, 기본 ""
그래픽 객체에 붙이는 사용자 정의 문자열이에요.
type (읽기 전용): 문자열
그래픽 객체의 클래스 이름이에요. type은 항상 "uitable"이에요.
userdata: 모든 Octave 데이터, 기본 [](0x0)
그래픽 객체와 연결할 사용자 정의 데이터예요.
객체 위치 (Object Position)
extent (읽기 전용): 네 원소 벡터
테이블의 크기를 나타내는 네 원소 벡터예요. 배열의 첫 두 원소는 항상 0이고, 세 번째와 네 번째 원소가 테이블의 높이와 너비를 담아요.
position: 네 원소 벡터, 기본 [20 20 300 300]
테이블의 위치와 크기예요. 벡터의 네 원소는 왼쪽 아래 모서리의 좌표와 figure의 너비, 높이예요. units 속성 참고.
units: "centimeters" | "characters" | "inches" | "normalized" | {"pixels"} | "points"
"position" 속성을 해석하는 데 쓰는 측정 단위예요.
부모/자식 (Parent/Children)
children (읽기 전용): 그래픽스 핸들 벡터, 기본 [](0x0)
uitable의 자식들의 그래픽스 핸들이에요.
handlevisibility: "callback" | "off" | {"on"}
handlevisibility가 "off"면 uitable의 핸들이 부모의 "children" 속성에 보이지 않아요.
parent: 그래픽스 핸들
부모 그래픽 객체의 핸들이에요.
테이블 데이터 (Table Data)
columnformat: 기본 {}(0x0)
각 열의 숫자 데이터 표시 형식이에요. 유효한 형식에는 "char", "logical", "numeric", 또는 format 함수의 유효한 형식 설정이 포함돼요.
columnname: 기본 "numbered"
"numbered" 또는 각 열 머리말에 쓸 이름을 담은 1×N 셀 문자열 벡터로 지정하는 열 이름이에요.
columnwidth: 기본 "auto"
각 열의 너비를 정하는 설정이에요. 유효한 옵션은 "auto", "fit", "1x", "2x" 등 균등히 나눈 배수, 또는 N개 테이블 열 각각에 대응하는 1×N 셀 벡터(각 원소는 위 문자열 옵션 중 하나이거나 픽셀로 지정된 고정 너비)예요. "1x" 속성은 아직 구현되지 않았어요.
data: 행렬, 기본 [](0x0)
테이블에 담긴 데이터로, 2차원 숫자·논리·셀 배열 중 하나로 지정해요.
rowname: 기본 "numbered"
"numbered" 또는 각 행 머리말에 쓸 이름을 담은 N×1 셀 문자열 벡터로 지정하는 행 이름이에요.
테이블 동작 (Table Operation)
columneditable: 논리 행 벡터, 기본 [](0x0)
열을 편집할 수 있는지 나타내는 논리 표시예요. 1×N 논리 값 벡터(true/false가 해당 열의 편집 가능 여부를 각각 뜻함) 또는 아무 열도 편집할 수 없음을 뜻하는 빈 논리 배열 중 하나로 구성돼요.
enable: "off" | {"on"}
이 테이블 객체가 활성인지 흐리게 표시되는지 설정해요.
rearrangeablecolumns: {"off"} | "on"
열 머리말을 클릭하고 끌어서 열을 이동할 수 있는지 여부를 나타내요.
텍스트 외형 (Text Appearance)
fontangle: "italic" | {"normal"}
글꼴을 이탤릭으로 할지 보통으로 할지 제어해요.
fontname: 문자열, 기본 "*"
텍스트 렌더링에 쓰는 글꼴 이름이에요. 이 속성을 설정하면 텍스트 렌더링 엔진이 시스템에서 일치하는 글꼴을 찾아요. 찾지 못하면 기본 산세리프(sans serif) 글꼴(기본값 "*"와 동일)로 렌더링해요. 프로그래밍 참고: FontConfig를 기본으로 쓰지 않는 시스템(Linux를 제외한 대부분)에서는 Octave 설치 시 글꼴 캐시가 만들어져요. 새 글꼴을 설치한 뒤에는 system ("fc-cache -fv")를 직접 실행해야 해요.
fontsize: 스칼라, 기본 10
텍스트 렌더링에 쓰는 글꼴 크기예요. fontunits 속성 참고.
fontunits: "centimeters" | "inches" | "normalized" | "pixels" | {"points"}
"fontsize" 속성을 해석하는 데 쓰는 단위예요.
fontweight: "bold" | {"normal"}
텍스트 렌더링에 쓰는 기본 글꼴의 변형을 제어해요.
더 알아보기
- 테이블 객체를 만드는
uitable함수를 함께 살펴보세요. - 콜백 작성(Callbacks 섹션)과 colorspec, GUI 구성 요소들도 이어서 확인해 보세요.