1
QSqlTableModel을 상속하여 데이터를 원하는 방식으로 내 테이블에 표시하려고합니다.QSqlTableModel, 데이터 함수 오버로드
class TableViewModel(QSqlTableModel):
def __init__(self):
super(TableViewModel, self).__init__()
def flags(self, modelIndex):
if not modelIndex.isValid():
return
if modelIndex.column() != 1 and modelIndex.column() != 4:
return Qt.ItemIsEnabled | Qt.ItemIsSelectable
return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable
def data(self, modelIndex, role=Qt.DisplayRole):
if not modelIndex.isValid():
return QVariant()
if role != Qt.DisplayRole & role != Qt.EditRole:
return QVariant()
return record.value(modelIndex.column())
이 코드에서는 빈 셀만 가져옵니다. data() 함수가 없으면이 코드는 완벽하게 작동합니다. TableView에 표시된 데이터는 정확히 있어야합니다.
QSqlTableModel에서 데이터를 가져 오는 것만으로도 충분합니다. 어디에서 찾을 수 있습니까? 아니면 그냥 내 잘못이라고?
미리 감사드립니다.
덕분에 도움이되었습니다. 내 자신에 의해 그것을하려고했지만, 어딘가 착각하고 그 결과로 - 재귀 – serge
고마워,하지만이 대답이 도운다면, 그것을 받아들이는 게 어때? 그것은 SO 에티켓입니다 (수락하고 싶은 대답의 왼쪽에있는 체크 표시가있는 모양의 아이콘을 사용하십시오). –
어쩌면 super (TableViewModel, self) .data (modelIndex, role)가 더 좋습니다. – Grissiom