2011-07-18 8 views
0

QTable의 사용법에 대한 기본적인 질문이 있습니다. 다음 예제를 고려하십시오. 이름, 나이 및 무게라는 세 개의 열이있는 표를 만들고 싶습니다. "추가"버튼은 테이블에 행을 추가 할 수 있어야합니다. 새로 추가 된 행 표시는 이탈하기 전에 완전히 수정됩니다 (즉, 세 개의 열을 모두 수정해야 함). 전체 행이 남아 있거나 컨트롤이 현재 행에 없다는 것을 나타내는 신호가 있습니까? 이러한 신호는 3 개의 열 모두에서 입력 값에 오류 확인 (예 : 나이가 양수인지 확인)을 수행하는 데 도움이됩니다 (또한 아무 것도 비어 있지 않도록). 이것은 매우 기본적인 요구 사항 인 것 같아요. 그런 작업을 지원하는 메커니즘이나 신호가 누락 된 것 같습니다.QTable : 행을 떠나는 식별하는 방법

답변

0

QTable 대신 QTableWidget 또는 QTableView를 사용해야합니다.

는 귀하의 질문에 응답, 이제

http://doc.qt.io/qt-4.8/porting4.html#qtable를 참조하십시오.

itemSelectionChanged() 또는 itemEntered() 신호를 사용해 보셨습니까?

다른 방법으로 신호 cellActivated() 또는 "추가"버튼으로 시작한 신호를 사용하여 편집이 시작되었음을 나타낼 수 있습니다. 그런 다음 다음 마우스 버튼 클릭 또는 Return 키 눌린 신호를 잡으려고 연결을 설정하여 편집을 마쳤습니다.

편집 : 내가 앱에서 당신은 QMainWindow 또는는 QWidget 서브 클래스한다고 가정 그렇다면는 QWidget :: mouseMoveEvent 다시 구현 및/또는는 QWidget :: keyPressedEvent 마우스 왼쪽 버튼을 때 감지하기 위해 사용 keyPressedEvent (클릭 할 때 감지하는 방법 Return 키 누름).

당신은

+0

http://doc.qt.io/qt-5/eventsandfilters.html에서 이벤트에 대한 자세한 내용을보실 수 있습니다 나는 우리가 QT 3.3.8 여기 붙어로이 중 어느 것도 나를 위해 유용 할 수 없었다 생각합니다. 현재, 아래 답변에서 언급 한 다른 방법을 사용하고 있습니다. – bbv

+0

나는 valuechanged() 시그널을 사용하고 있지만 이것은 테이블에서 실제 편집이 이루어진 경우에만 유용하다. 나는 누군가가 (Add 단추의 도움으로) 테이블에 새로운 행을 생성 한 다음 응용 프로그램의 다른 곳을 클릭하는 경우를 식별하는 방법을 여전히 모른다. 이런 경우에 신호가 있습니까? – bbv

관련 문제