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

  


 텍스트 테이블은 행과 열로 구성되어 있습니다. 행은 상단부터 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:행 )

 

 지정한 행의 문자를 리스트로 읽어옵니다.


  • 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()  )



 결과)