문제

편집 모드에서 항상 마지막 열을 표시하려는 QTableView가 있습니다.(사용자가 항상 값을 변경할 수 있어야 하는 QComboBox입니다.)

내 생각엔 해결책을 본 것 같아 Qt 문서, 하지만 더 이상 찾을 수 없습니다.간단한 방법이 있나요?

나는 다음을 사용하여 이 효과를 보관할 수 있다고 생각합니다. openPersistentEditor() 모든 세포에 대해 더 나은 방법을 찾고 있습니다.(전체 열에 대해 한 번만 지정하는 것과 같습니다.)

도움이 되었습니까?

해결책

두 가지 가능성이 있습니다.

사용 setIndexWidget, 그러나 Trolltech는 다음과 같이 씁니다.

이 기능은 데이터 항목에 해당하는 가시 영역 내에 정적 컨텐츠를 표시하는 데만 사용해야합니다. 사용자 정의 동적 컨텐츠를 표시하거나 사용자 정의 편집기 위젯을 구현하려면 대신 서브 클래스 QitemDelegate를 구현하십시오.

(그리고 모델/보기 패턴을 깨뜨립니다…)

또는 사용 대의원 paint 방법. 그러나 여기서는 활성화/비활성화 요소와 같은 모든 것을 직접 구현해야합니다.

다른 팁

자동 편집 동작을 얻는 한 가지 방법은 QABSTRANTITEMVIEW :: ALLEDITTRIGGERS 값으로 View의 setEditTriggers () 함수를 호출하는 것입니다.

주어진 열의 내용을 특정 방식으로 표시하려면 Qabstractitemview :: setitemdelegateforcolumn ()을 살펴보십시오. 이를 통해 필요한 항목에 대해서만 사용자 정의 대의원을 지정할 수 있습니다. 그러나 각각에 대한 편집기 위젯을 자동으로 생성하지는 않지만 (원칙적으로 수천 개가 될 수 있음) 대의원을 사용하여 각 항목을 편집기 위젯처럼 보이게하는 방식으로 렌더링 할 수 있습니다.

그만큼 qabstractItemModel::깃발 항목이 편집 가능한지 테스트하기 위해 가상 기능이 호출됩니다 ( QT :: 항목 분류 가능). 보세요 모델 편집 가능성 에서 모델/보기 프로그래밍 선적 서류 비치.

이 작업을 수행하는 쉬운 방법은 없지만 대리자를 사용하여 관리할 수는 있습니다.솔직히 어떻게 될지는 모르겠지만 열심히 노력하면 뭔가 효과를 얻을 수 있을 것입니다.적절한 대리자를 얻으면 전체 뷰, 뷰의 한 셀 또는 열이나 행에만 설정할 수 있어야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top