나는 (QSortFilterProxyModel을 통해) QAbstractTableModel의 하위 클래스에 QTreeView (databaseTreeView
)가 포함 된 창을 가지고 있습니다. ui->databaseTreeView->model()->insertRow(ui->databaseTreeView->model()->rowCount());
을 호출하는 [추가] 버튼이 있습니다. ui->databaseTreeView->selectionModel()->currentIndex();
을 사용하여 편집기 창에 색인을 전달하는 [편집] 단추가 있습니다.Qt4의 모델에 항목을 추가하고 새로 추가 된 항목의 색인을 얻는 방법
[추가] 버튼을 사용하여 새로 만든 항목의 색인이있는 편집기가 자동으로 열리길 원하지만 모델이 정렬되면 행을 삽입 한 행 번호를 사용할 수 없습니다. Plus insertRows()
은 bool 만 반환합니다 (내 상황에 대한 색인이 훨씬 더 편리 할 수 있으므로 새로 추가 된 항목의 색인을 얻는 방법을 누군가에게 알려줄 수 있는지 궁금합니다).
대체 방법이 없다면 리팩터링에 2 ~ 3 시간을 바칠 의향이 있지만 상당히 간단하다고 생각했을 것입니다. 나는 호의적으로 QAbstractItemModel::rowsInserted
시그널을보고있다. 그러나 그냥 insertRows()
에 주어진 줄을 반환하고 방금 추가 된 항목인지 여부에 관계없이 목록의 마지막 항목을 편집한다.
자세한 정보는 https://github.com/megamasha/FlashKard에서 확인할 수 있습니다.
감사하지만, 다른 하나의 인덱스로 변환의 문제가 아니다 - 그것은 처음부터 인덱스를 가지고 있지의 문제이다. 어쨌든 해결책을 찾았습니다. 나는 addRows() 함수에서 보낸 신호를 구현하여 그것을 슬롯에 연결했다.이 슬롯은 편집을 위해 그 카드를 연다. –