5

テキストの行を表示するだけのサードパーティQListViewオブジェクトへのポインタがあります。そのテキストの文字列を取得する最良の方法は何ですか?

4

2 に答える 2

4

によってアクセス可能なモデルQListView::model()は、アイテムを保持します。次のようなことができます。

QListView* view ; // The view of interest

QAbstractItemModel* model = view->model() ;
QStringList strings ;
for ( int i = 0 ; i < model->rowCount() ; ++i )
{
  // Get item at row i, col 0.
  strings << model->index( i, 0 ).data( Qt::DisplayRole ).toString() ;
}

また、テキストが書き込まれたときに更新された文字列を取得したいと述べています。これは、モデルのdataChanged()信号を文字列を抽出する関数に接続することで実行できます。を参照してくださいQAbstractItemModel::dataChanged()

于 2009-07-28T21:07:08.357 に答える
3

QListView オブジェクトにそのルート QModelIndex を要求し、それを使用して、sibling/children メソッドを使用してさまざまなエントリを反復処理できます。Qt::DisplayRole として指定されたロールでインデックスの data メソッドを呼び出すことで、各インデックスに関連付けられたテキストにアクセスできます。

詳細については、次のドキュメントを参照してください。

QAbstractItemView - QListView の親クラス

QModelIndex

于 2009-07-28T20:02:45.803 に答える