2013-01-24 3 views
0

QT5.0을 사용하고 QT를 처음 사용하는 응용 프로그램을 개발하고 있습니다. 나쁘게, 나는 오랜 학습 곡선을 그리는 데 너무 많은 시간을 보내지 않았다. 나는 내 자신의 TableModel을 파생시키고 편집 가능한 TableView로 설정했습니다. TableView는 모델의 데이터를 보여 주며 작동합니다. 그러나 테이블 뷰에서 셀을 활성화하면 데이터가 사라집니다. 설명서를 살펴본 결과, QTableView는 QAbstractItemView 클래스에서 파생되었으며 'activated'라는 신호와 'edit'라는 슬롯이 있다는 것을 알았습니다. 그래서, '활성화 된'신호가 '편집'슬롯에 연결되어 있다고 생각합니다. 하지만 '편집'은 가상이 아니므로 무시할 수는 없습니다. 내 자식 클래스를 부모 '활성화 된'신호에 연결할 수 있지만 실제로 TableView 개체의 현재 데이터를 저장하려면이 신호를 처리하는 방법을 모릅니다. 코드에서 SqlTableModel을 사용하는 경우에는 문제가 없습니다. 나는 그것이 '활성화 된'신호를 처리한다고 생각하지만 이것들에 대해서는 확신하지 못하고있다. 단지 이것을 추측한다. 이것을하는 올바른 방법은 무엇입니까?셀이 활성화되면 QTableView 셀 데이터가 사라집니다.

QVariant TableModel::data(const QModelIndex &index, int role) const 
    if(!index.isValid()) 
     return QVariant();  
    if(role == Qt::DisplayRole || role == Qt::EditRole) { 
     return <your data> 
    } 
    return QVariant(); 
} 

당신이 EditRole 역할을 처리했는지 확인하십시오

답변

2

는 데이터 기능을 확인하십시오.

행운을 빈다.

관련 문제