텍스트 테이블은
표기능을 담당하는 그래픽 개체 입니다. 텍스트 테이블을 활용해 표를 쉽게 만들 수 있습니다.

텍스트 테이블은 행과 열로 구성되어 있습니다. 행은 상단부터 0값을 기준으로 하단으로 1씩 증가합니다. 열은 좌측부터 0값을 기준으로 우측으로 1씩 증가합니다. 행과 열을 지정하여 셀의 데이터를 확인하거나 설정할 수 있습니다.
아래 그림은 행과 열의 구성을 보여주고 있습니다.
Methods
리턴 값
|
함 수
|
설 명
|
color
|
cellFillColor( row, column )
|
행과 열을 지정하여 셀의 배경색을 반환합니다.
|
color
|
cellLineColor( row, column )
|
행과 열을 지정하여 셀의 테두리 색상을 반환합니다.
|
str
|
cellText( row, column )
|
셀에 표시된 문자를 읽습니다.
|
color
|
cellTextColor( row, column )
|
행과 열을 지정하여 셀에 표시된 문자의 색상을 반환합니다.
|
|
clearGridData()
|
setGridData로 설정한 데이터를 삭제합니다.
|
|
clearText( startRow, rowCount, startColumn, columnCount )
|
셀 영역을 지정해 해당 셀의 문자를 지웁니다.
|
int
|
columnCount()
|
열의 개수를 읽어옵니다.
|
|
connect( eventName, func )
|
텍스트 테이블 위젯의 이벤트 핸들러를 등록합니다.
|
int
|
currentPage()
|
현재 페이지를 반환합니다.
|
|
moveNextPage()
|
현재 페이지를 기준으로 다음 데이터를 출력 합니다.
|
|
movePrevPage()
|
현재 페이지를 기준으로 이전 데이터를 출력 합니다.
|
int
|
rowCount()
|
행의 개수를 읽어옵니다.
|
list[str]
|
rowTexts( row )
|
지정한 행의 문자를 모두 읽습니다.
|
|
setCellFillColor( row, column, color )
|
행과 열을 지정하여 셀의 배경색을 설정합니다.
|
|
setCellLineColor( row, column, color )
|
행과 열을 지정하여 셀의 테두리 색상을 설정합니다.
|
|
setCellText( row, column, text )
|
행과 열을 지정하여 셀에 문자를 설정합니다.
|
|
setCellTextColor( row, column, color )
|
행과 열을 지정하여 셀에 표시된 문자의 색상을 설정합니다.
|
|
setCellClickable( row, column, clickable )
|
행과 열을 지정하여 마우스 포인터가 해당 셀에 올려졌을때 클릭 가능 여부를 설정합니다.
|
|
setCellStyle( row, column, style )
|
행과 열을 지정하여 셀의 스타일을 설정합니다.
|
|
setClickable( clickable )
|
마우스 포인터가 텍스트 테이블에 올려졌을때 모든 셀의 클릭 가능 여부를 설정합니다.
|
|
setDisplaySelection( enable )
|
텍스트 테이블 위젯의 셀 영역 지정 가능 여부를 설정합니다.
|
|
setGridData( startRow,startColumn,rowCount,columnCount , datas)
|
지정한 위치에 데이터를 출력합니다. 데이터 갯수가 그리드의 행 수를 초과하는경우 페이지를 넘겨 조회할 수 있습니다.
|
int
|
totalPage()
|
전체 페이지 크기를 반환 합니다.
|
str cellText( row:행, column:열 )
|
셀에 표시된 문자를 읽습니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 0행 1열에 표시된 문자를 읽습니다.
text = obj.cellText(0, 1)
|
|

|
list[str] rowTexts( row:행 )
|
지정한 행의 문자를 리스트로 읽어옵니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 2번째 행의 문자를 리스트로 읽어옵니다
print obj.rowTexts(2)
|
|

|
int rowCount()
|
테이블의 행의 개수를 읽어옵니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 행 개수를 읽어옵니다.
print obj.rowCount()
|
|
결과)
>>> 12

|
int columnCount()
|
테이블의 열의 개수를 읽어옵니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 열 개수를 읽어옵니다.
print obj.columnCount()
|
|
결과)
>>> 5

|
setCellText( row:행 , column:열 , text:텍스트 )
|
행과 열을 지정하여 입력한 텍스트를 표기합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
- text: 표기할 텍스트를 입력합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 1행 1열에 '77'을 표기합니다.
obj.setCellText(1, 1, '77')
|
|

|
clearText( startRow:시작행, rowCount:지울 행 갯수 , startColumn:시작열, columnCount:지울 열 갯수 )
|
셀 영역을 지정해 해당 셀의 문자를 지웁니다.
- startRow: 시작 행을 입력합니다.
- rowCount: 지울 행의 갯수를 입력합니다.
- startColumn: 시작 열을 입력합니다.
- columnCount: 지울 열의 갯수를 입력합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 셀 영역을 지정하여 해당 셀의 문자를 지웁니다.
obj.clearText(1, 4, 1, 4)
|
|

|
setCellTextColor( row:행, column:열, color:색상 )
|
setCellTextColor 함수는 행과 열을 지정하여 셀에 표시된 문자의 색상을 설정합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
- color: 설정하려는 글자색을 QColor 개체를 이용하여 입력합니다.
QColor 개체는 RGB 색상 값과 투명도 값을 설정해야 합니다. 각 RGB와 투명도 색상 값은 0~255 정수 값을 입력합니다.
QColor 개체는 다음과 같이 사용합니다.
QColor(red,green,blue,transparency)
- 사용 예
- 빨강색: QColor(255,0,0,255)
- 불투명한 녹색: QColor(0,255,0,128)
- 파랑색: QColor(0,0,255,255)
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 1행 1열의 문자의 색상을 QColor(255,0,0,255) 색상으로 변경합니다.
obj.setCellTextColor(1, 1, QColor(255,0,0,255))
|
|

|
setCellFillColor( row:행, column:열, color:색상 )
|
setCellFillColor 함수는 행과 열을 지정하여 셀의 배경색을 설정 합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
- color: 설정하려는 배경색을 QColor 개체를 이용하여 입력합니다.
QColor 개체는 RGB 색상 값과 투명도 값을 설정해야 합니다. 각 RGB와 투명도 색상 값은 0~255 정수 값을 입력합니다.
QColor 개체는 다음과 같이 사용합니다.
QColor(red,green,blue,transparency)
- 사용 예
- 빨강색: QColor(255,0,0,255)
- 불투명한 녹색: QColor(0,255,0,128)
- 파랑색: QColor(0,0,255,255)
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 1행 1열의 셀 배경색을 QColor(0,255,0,128) 색상으로 변경합니다.
obj.setCellFillColor(1, 1, QColor(0,255,0,128))
|
|

|
setCellLineColor( row:행, column:열, color:색상 )
|
setCellLineColor 함수는 행과 열을 지정하여 셀의 테두리 색상을 설정 합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
- color: 설정하려는 테두리 색상을 QColor 개체를 이용하여 입력합니다.
QColor 개체는 RGB 색상 값과 투명도 값을 설정해야 합니다. 각 RGB와 투명도 색상 값은 0~255 정수 값을 입력합니다.
QColor 개체는 다음과 같이 사용합니다.
QColor(red,green,blue,transparency)
- 사용 예
- 빨강색: QColor(255,0,0,255)
- 불투명한 녹색: QColor(0,255,0,128)
- 파랑색: QColor(0,0,255,255)
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 1행 1열의 셀 테두리 색을 QColor(0,0,255,255) 색상으로 변경합니다.
obj.setCellLineColor(1, 1, QColor(0,0,255,255))
|
|

|
color cellTextColor( row:행, column:열 )
|
cellTextColor 함수는 행과 열을 지정하여 셀에 표시된 문자의 색상을 반환합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 1행 1열에 표시된 문자색을 반환합니다.
obj.cellTextColor(1, 1)
|
|
color cellFillColor( row:행, column:열 )
|
cellFillColor 함수는 행과 열을 지정하여 셀의 배경색을 반환합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 1행 1열의 셀 배경색을 반환합니다.
obj.cellFillColor(1, 1)
|
|
color cellLineColor( row:행, column:열 )
|
cellLineColor 함수는 행과 열을 지정하여 셀의 테두리 색상을 반환합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 1행 1열의 셀 테두리 색상을 반환합니다.
obj.cellLineColor(1, 1)
|
|
setDisplaySelection( enable:셀 영역 지정 여부 )
|
setDisplaySelection 함수는 텍스트 테이블 위젯의 셀 영역 지정 가능 여부를 설정합니다.
- enable: 셀 영역 지정 여부를 입력합니다.
- 1을 입력하면 마우스 드래그로 셀 영역 지정이 가능합니다.
- 0을 입력하면 마우스 드래그로 셀 영역 지정이 불가능합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 셀 영역을 지정 가능하도록 설정합니다.
obj.setDisplaySelection(1)
|
|

|
setCellStyle( row:행, column:열, style:셀의 스타일을 입력 )
|
setCellStyle 함수는 행과 열을 지정하여 셀의 스타일을 설정합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
- style: 셀의 스타일을 설정합니다.
- Button: 셀이 버튼 스타일로 변경되고 클릭이 활성화됩니다.
- None: 버튼 스타일의 셀이 기본 셀로 변경되고 클릭이 비활성화됩니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 0행 0열의 셀을 버튼 스타일로 설정합니다.
obj.setCellStyle(0, 0, obj.Button)
|
|

예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 0행 0열의 셀을 기본 스타일로 설정합니다.
obj.setCellStyle(0, 0, obj.None)
|

|
setCellClickable( row:행, column:열 , clickable:클릭 가능 여부 )
|
setCellClickable 함수는 행과 열을 지정하여 마우스 포인터가 해당 셀에 올려졌을때 클릭 가능 여부를 설정합니다.
- row: 행을 입력합니다.
- column: 열을 입력합니다.
- clickable: 클릭 가능 여부를 입력합니다.
- 1을 입력하면 해당 셀의 클릭을 활성화합니다.
- 0을 입력하면 해당 셀을 클릭을 비활성화합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 2행 3열 셀의 클릭을 활성화합니다.
obj.setCellClickable(2, 3, 1)
|
|

|
setClickable( clickable:클릭 가능 여부 )
|
setClickable 함수는 마우스 포인터가 텍스트 테이블에 올려졌을때 모든 셀의 클릭 가능 여부를 설정합니다.
- clickable: 클릭 가능 여부를 입력합니다.
- 1을 입력하면 모든 셀의 클릭을 활성화합니다.
- 0을 입력하면 모든 셀의 클릭을 비활성화합니다.
예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 모든 셀 클릭을 활성화합니다.
obj.setClickable(1)
|
|

예)
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 모든 셀 클릭을 비활성화합니다.
obj.setClickable(0)
|

|
connect( eventName:이벤트 핸들러 이름, func:이벤트 발생시 수신 함수 )
|
텍스트 테이블 위젯의 이벤트를 수신합니다.
- 텍스트 테이블 위젯에서 다음과 같은 경우 이벤트를 발생합니다.
- 셀을 클릭했을때 : currentChanged(int, int)
- 셀을 더블 클릭했을때 : cellDoubleClicked(int, int)
예)
# handleCellSelected 함수를 정의합니다.
def handleCellSelected(row, column):
print 'cell selected'
# handleCellDoubleClicked 함수를 정의합니다.
def handleCellDoubleClicked(row, column):
print 'cell double clicked'
# 텍스트 테이블 위젯 개체를 얻어옵니다.
obj = canvas.getObject('Text Table')
# 텍스트 테이블 위젯의 셀이 선택되었을때 handleCellSelected 함수가 호출됩니다.
obj.connect('currentChanged(int, int)', handleCellSelected)
# 텍스트 테이블 위젯의 이 더블 클릭되었을때 handleCellDoubleClicked 함수가 호출됩니다.
obj.connect('cellDoubleClicked(int, int)', handleCellDoubleClicked)
|
|
setGridData( startRow:시작행 위치, startColumn:시작열 위치, rowCount:행 갯수, columnCount:열 갯수, data: 출력할 데이터)
|
그리드 행 갯수를 초과하는 데이터를 출력할때 사용합니다. 데이터가 그리드 행 갯수를 초과하는 경우 현재 그리드에 표시하지 못한 데이터는 페이지 이동을 통해 데이터를 쉽게 조회 할수 있습니다.
출력할 데이터는 문자열 리스트의 리스트 형식으로 입력 합니다.
- startRow: 그리드 시작 행을 입력합니다.
- startColumn: 그리드 시작 열을 입력합니다.
- rowCount: 그리드 행 갯수를 입력합니다.
- columnCount: 그리드 열 갯수를 입력합니다.
- data: 출력할 데이터를 입력합니다.
예) 붉은색으로 지정한 영역에 데이터를 출력합니다.

# 출력한 데이터를 리스트에 저장합니다.
datas = list()
for v in range(0,24):
columnDatas = list()
columnDatas.append('%d시' % v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
datas.append(columnDatas)
table =canvas.getObject('table')
# 데이터를 그리드에 설정합니다.
table.setGridData(1,0,10,8,datas)
|
|
실행시 아래과 같이 데이터가 출력됩니다. 설정한 데이터가 그리드 열(Row) 보가 많은 경우, nextPage(),
prevPage()를 이용해 데이터를 조회할 수 있습니다.

|
clearGridData()
|
clearGridData를 이용해 설정한 데이터를 삭제합니다.
예) setGridData를 이용해 아래와 같이 데이터가 설정된 상태에서 clearGridData를 실행하면 설정된 데이터가 삭제됩니다.

table =canvas.getObject('table')
# 이전에 설정한 데이터를 삭제합니다.
table.clearGridData()
|
|
결과)

|
moveNextPage( )
|
setGridData를 이용해 설정한 데이터가 그리드 행보다 큰 경우 다음 데이터를 출력합니다.
예) 그리드에 아래와 같이 데이터가 출력된 상태에서 moveNextPage를 실행할 경우 다음 데이터가 출력됩니다.

table = canvas.getObject('table')
# 그리드의 다음 페이지 데이터를 출력합니다.
table.moveNextPage()
|
|
결과)

|
movePrevPage( )
|
setGridData를 이용해 데이터가 설정된 상태에서 현재 페이지를 기준으로 이전 페이지로 이동합니다.
예)

table = canvas.getObject('table')
# 그리드의 다음 페이지 데이터를 출력합니다.
table.movePrevPage()
|
|
결과)

|
currentPage( )
totalPage()
|
currentPage는 현재 페이지를 반환하며, totalPage는 전체 페이지 수를 반환합니다.
예)
datas = list()
for v in range(0,24):
columnDatas = list()
columnDatas.append('%d시' % v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
columnDatas.append(v)
datas.append(columnDatas)
table =canvas.getObject('table')
table.setGridData(1,0,10,8,datas)
o = canvas.getObject('totalPage')
o.setProperty('FaceText', table.totalPage() )
o = canvas.getObject('currentPage')
o.setProperty('FaceText', table.currentPage() )
|
|
결과)

|