我有一个指向第三方QListView
对象的指针,它只显示文本行。获取该文本字符串的最佳方法是什么?
答案 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的父类