테이블 속성

테이블 속성 (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 구성 요소들도 이어서 확인해 보세요.