QSqlTableModelでQTableViewを使用しています。私の見解では、レコードIDを含む列は表示されません。選択した行がどの列にも表示されていない場合、その行のIDを取得するにはどうすればよいですか?
手伝ってくれてありがとう :)
QSqlTableModelでQTableViewを使用しています。私の見解では、レコードIDを含む列は表示されません。選択した行がどの列にも表示されていない場合、その行のIDを取得するにはどうすればよいですか?
手伝ってくれてありがとう :)
また、QSqlQueryModelから直接idを取得することもできますが、soulSurferによって提案されたものよりも便利かどうかはわかりません。
QModelIndex
目的の行に使用する:
QSqlQueryModel *model = tableView->model();
QSqlRecord record= model->record(desiredIndex->row());
QSqlField field = record.field(id_column_index);
int id = field.value().toInt();
うーん...1つの方法は、モデルからIDを取得し、それをビューに非表示にすることです。
void QTableView::setColumnHidden (int column, bool hide)
基本的には取得しますが、非表示にします。ここから、から発行されたインデックスを使用して、モデルから直接簡単に取得できます。
void QAbstractItemView::activated ( const QModelIndex & index )
信号。