質問

私は単純にテキストの行を表示しているサードパーティのQListViewオブジェクトへのポインタを持っています。テキストの文字列のホールドを取得する最良の方法は何ですか?

役に立ちましたか?

解決

モデルは、 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()するます。

他のヒント

あなたはそのルートQModelIndexためQListViewオブジェクトを尋ねると、兄弟/子供の方法を使用して別のエントリを反復処理するためにそれを使用することができます。あなたはQtの:: DisplayRoleとして指定された役割とインデックスにデータメソッドを呼び出すことにより、各インデックスに関連付けられたテキストにアクセスすることができます。

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

QAbstractItemViewする - QListViewに親クラス

QModelIndexする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top