سؤال

لدي مؤشر إلى طرف ثالث 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

QModelindex.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top