키를 입력/반환 할 때 선택된 상자를 확인하는 체크 박스를 사용하여 목록보기를 만들려고합니다. 나는 (그래 내가 그것을 서브 클래스한다고,하지만 난 그 작업 얻을 수 없었다) 내 MainWindow를위한 eventfilter의 재정이 할 내가 itemFromIndex 메소드로부터 반환 된 없음 값을 얻을 eventfilter에서QStandardItemModel itemFromIndex 메서드가 None을 반환하는 이유는 무엇입니까? (인덱스가 유효하지 않습니다)
을 .isValid()을 통해 문제없이 색인을 전달한 경우에도 마찬가지입니다. 분명히 나는 뭔가를 놓치고있다. 그러나 나는 그것을 이해할 수 없다 - 완전히 다른 지표를보고 있는가? 모델이 업데이트되지 않았습니까? 대체 방법에
어떤 조언을 내가 파일을로드 할 때, 그것은 단지라고 내가 항목 모델 (QStandardItemModel)을 채우기 위해 사용하는 방법입니다
환영합니다. 나는 selectionModel의에 대한 변수를 만들어 내 QListView
self.sigInSelection = self.siNLV.selectionModel()
self.siNLV.installEventFilter(self)
방법이 및 필터링처럼 보이는 eventFilter에 eventfilter를 설치하는 경우
def update_siNLV(self,names,model): model.clear() for name in names: item = Qg.QStandardItem(name) item.setCheckState(Qc.Qt.Unchecked) item.setCheckable(True) model.appendRow(item)
이
은 초기화 방법에서입니다 메서드의 일부가 작동합니다 (Enter 키를 눌러 선택한 인덱스를 인쇄하도록했습니다) 주석에서 설명하고있는 바와 같이
'index'가'sigInSelection'에서 유효한 인덱스인지 확인한 것 같습니다. * 선험적 * 이유가 없으므로'sigInModel'에도 유효한 인덱스 여야합니다. –
네 말이 맞아. 그래서 'sigInModel'이 listview로 설정되어 있어도'siNLV' 내장형 selectionmodel과 인덱스를 공유하지 않습니까? 그렇다면 선택을 내 데이터에 어떻게 연결합니까? –
'eventFilter'가 작동한다고 했으므로 어디에서'itemFromIndex'를 호출해야 볼 수 없습니다. 우리는 아마도 좀 더 많은 코드를보아야 할 것입니다. MVCE가 도움이 될 수 있습니다. – strubbly