2012-08-05 3 views
0

나는 현재 활성화 된 셀의 좌표를 잡기 위해 PyQt4를 사용하여 QTableWidget.cellActivated (행, 숫자)를 다시 구현하려고 시도했습니다. 아래 예제는 예상대로 작동하지 않으며 셀을 클릭 할 때 메서드가 활성화되지 않습니다. 내가 잘못 했니? docs 찾고QTableWidget.cellActivated() 신호가 작동하지 않습니까?

class DictionaryTable(QtGui.QTableWidget): 

    def __init__(self, parent=None): 
     QtGui.QTableWidget.__init__(self, parent) 

    def cellActivated(self, row, column): 
     print row, column 

답변

3

난 참조 :

공극 QTableWidget :: cellActivated (INT 행, INT 열) 신호]

이 신호가 방출 될 때 셀 행 및 열로 지정됨 활성화 됨이 함수는 Qt 4.1에서 소개되었습니다.

이것은 신호가 아니라 이벤트입니다. 따라서 cellActivated 메서드를 구현할 필요가 없습니다 (메서드가 아니며 신호 형식의 클래스 특성입니다). 신호에 연결해야합니다 :

class DictionaryTable(QtGui.QTableWidget): 

    def __init__(self, language_code, parent=None): 
     QtGui.QTableWidget.__init__(self, parent) 
     self.cellActivated.connect(self.handleCellActivated) 

    def handleCellActivated(self, row, column): 
     print row, column 
+0

연결 문제는 해결되었지만 강조 표시된 셀에서 Enter 키를 누를 때만 신호가 방출됩니다. 새로운 셀이 선택 될 때마다 (탭 또는 화살표 키 또는 마우스 클릭을 사용하여) 신호가 방출 될 것으로 예상했습니다. cellEntered는 이것을 추적하지 않습니다. – Benjamin

+0

@Benjamin,'self.selectionModel(). selectChanged.connect (self.onSelectionChanged)'와 같은 것을 시도해라. – warvariuc

+0

네,'selectionChanged'를 알아 냈습니다. 감사합니다. :) – Benjamin