从QListView获取文本

时间:2009-07-28 19:53:45

标签: string qt text qlistview

我有一个指向第三方QListView对象的指针,它只显示文本行。获取该文本字符串的最佳方法是什么?

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:3)

您可以向QListView对象询问其根QModelIndex,并使用它来使用sibling / children方法迭代不同的条目。您可以通过使用指定为Qt :: DisplayRole的角色调用索引上的data方法来访问与每个索引关联的文本。

有关详细信息,请参阅以下文档:

QAbstractItemView - QListView的父类

QModelIndex