الحصول على نص من qlistView
سؤال
لدي مؤشر إلى طرف ثالث 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()
.
نصائح أخرى
يمكنك طرح كائن QlistView الخاص به لجذر QModelindex واستخدامه للتكرار خلال الإدخالات المختلفة باستخدام أساليب الأخوة / الأطفال. يمكنك الوصول إلى النص المرتبط بكل فهرس عن طريق استدعاء طريقة البيانات على الفهرس مع الدور المحدد ك QT :: Displayrole.
لمزيد من التفاصيل، راجع الوثائق التالية:
QabstractItemview. - الطبقة الأصل إلى qlistView