2008-11-10 5 views
1

동적으로 채워지는 wxGrid가 있습니다. 나는 각 행에 사용자에게 표시하면 안되는 정보를 저장하고 싶습니다. 행과 데이터를 연결하는 가장 좋은 방법은 무엇입니까? 난 그냥 숨겨진 열을 만들거나 더 좋은 방법이 있을까요?wxGrid의 숨겨진 정보

답변

3

숨겨진 열을 만드는 것이 가장 빠르지 만 실제로는 매우 못생긴 방법입니다. 노력을 정당화 할 수 있다면 자신 만의 그리드 테이블 기본 클래스를 만들어야합니다. 자신의 wxGridTableBase - 파생 된 클래스는 그리드에 표시하지 않고 필요한 정보를 저장할 수 있습니다. 불행히도 그 클래스에 대한 문서는 드물거나 거의 존재하지 않습니다.

예를 들어 wxWidgets 샘플 디렉토리의 그리드 데모, 특히 BugsGridTable 클래스를 참조하십시오. 눈금을 표시 할 문자열을 반드시 저장할 필요는 없지만 GetValue() 메서드에서 데이터의 서식을 지정할 수 있습니다. 이는 메모리 소비 측면에서나 디스플레이 데이터의 형식을 즉석에서 변경할 수 있기 때문에 훨씬 더 좋습니다.

사용자 정의 그리드 테이블 기본 클래스로의 전환은 Firebird 관계형 데이터베이스 용 관리 도구 FlameRobin의 결과 집합 데이터 그리드에 대한 속도, 메모리 소비 및 기능에 큰 영향을 미쳤습니다. 소스 코드에서 wxGrid를 사용하는 방법을 항상 확인할 수 있습니다.

0

SetRowLabelValue를 사용하여 행 레이블에 값을 저장하고 행 레이블을 숨 깁니다.