7

QSqlTableModelでQTableViewを使用しています。私の見解では、レコードIDを含む列は表示されません。選択した行がどの列にも表示されていない場合、その行のIDを取得するにはどうすればよいですか?

手伝ってくれてありがとう :)

4

2 に答える 2

6

また、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();
于 2011-04-24T06:45:43.103 に答える
5

うーん...1つの方法は、モデルからIDを取得し、それをビューに非表示にすることです。

void QTableView::setColumnHidden (int column, bool hide)

基本的には取得しますが、非表示にします。ここから、から発行されたインデックスを使用して、モデルから直接簡単に取得できます。

void QAbstractItemView::activated ( const QModelIndex & index )

信号。

于 2011-04-24T04:42:30.270 に答える