String 从QListView获取文本

String 从QListView获取文本,string,qt,text,qlistview,String,Qt,Text,Qlistview,我有一个指向第三方QListView对象的指针,它只是显示文本行。获取该文本字符串的最佳方法是什么?您可以向QListView对象请求其根QModelIndex,并使用该根QModelIndex使用同级/子级方法迭代不同的条目。您可以通过使用指定为Qt::DisplayRole的角色调用索引上的data方法来访问与每个索引关联的文本 有关更多详细信息,请参阅以下文档: -QListView的父类 可由访问的模型包含项目。您可以这样做: QListView* view ; // The view

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

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

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

-QListView的父类

可由访问的模型包含项目。您可以这样做:

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() ;
}
QListView*视图;//利益观
qabstractemmodel*model=view->model();
QStringList字符串;
对于(int i=0;irowCount();++i)
{
//获取第一行第0列的项目。
字符串索引(i,0).data(Qt::DisplayRole).toString();
}

您还提到希望在写入文本时获得更新的字符串-您可以通过将模型的
dataChanged()
信号连接到提取字符串的函数来实现这一点。看。

谢谢,我试试看。有没有一个插槽我可以连接到这样做时,新的文本写入它?这是正确的吗?QObject::connect(model,SIGNAL(dataChanged(QModelIndex,QModelIndex)),client_u,SLOT(onText()),其中client_u是从QObject派生的类,而onText是在公共SLOT下声明的。是的,这就是想法。如果您的onText()签名也与dataChanged()匹配,那么您将只能在数据更改的索引中循环,而不是在整个列表中循环。现在这是我的行:QObject::connect(model,SIGNAL(dataChanged(const QModelIndex,const QModelIndex)),client_x,SLOT(onText(const QModelIndex,const QModelIndex));它返回true,但我没有看到我在“onText”函数中输入的cout。有什么想法吗?谢谢你的快速回答,从QListView获取文本效果很好