في GTK، كيف يمكنني البحث في ListStore للصف الذي يحتوي على قيمة معينة؟

StackOverflow https://stackoverflow.com/questions/2214431

  •  19-09-2019
  •  | 
  •  

سؤال

انا املك ListStore نمذجة قائمة Tagس. قد تتغير هذه القائمة من ListStore. وبعد ما أود القيام به هو الاستماع إلى TagRemoved الحدث في بلدي TagList فئة، وإزالة Tag من ListStore عندما يتم تشغيل الحدث. ومع ذلك، لا أستطيع أن أجد طريقة للبحث ListStore للصف الذي يحتوي على معطى Tag, ، حتى أتمكن من إزالته.

هل هناك أي طريقة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

أ GtkListStore تنفذ GtkTreeModel واجهة، التي تحتوي على عمليات اجتياز الشجرة التي تريدها. بقدر ما أعرف، لا يوجد API الراحة للبحث عن متجر قائمة / شجرة، لذلك عليك أن تتصل بك.

منذ أنك ببساطة تكرار أكثر من GtkListStore, ، يمكنك تجاهل جميع واجهة برمجة التطبيقات التي تتناول العلاقات بين الأطفال / الوالدين، واستخدامها ببساطة gtk_tree_model_iter_first() و gtk_tree_model_iter_next() لاجتياز القائمة.

بدلا من ذلك، إذا كنت تعرف بالفعل مؤشر العلامة التي تمت إزالتها في المتجر (على سبيل المثال، من TagRemoved الحدث)، يمكنك تحويل ذلك إلى GtkTreePath واستخدام gtk_tree_model_get_iter() لاسترداد الصف في السؤال مباشرة دون البحث.

نصائح أخرى

يتم تنفيذ GTKListStore داخليا ك قائمة مرتبطة لذلك يجب عليك مسح النموذج بنفسك.

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