سؤال

أريد أن استخدام QCombobox كما Combobox من Swing في Java. لذلك أنا بحاجة إلى استخدام Model لعقد كائني. كيف يمكنني حمل كائني في QCombobox. (أعتقد أنني يجب أن أحمل البيانات في النموذج QCombobox تم تصميمه وفقًا لنمط MVC ...) سيتم تقدير أي مساعدة.

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

المحلول

اعتمادًا على ما تريد عرضه مع QComboBox, ، ستحتاج إلى كتابة النموذج الخاص بك ، وراثيا QAbstractListModel, ، إعادة تنفيذ rowCount()و data().

ثم استخدام QComboBox::setModel() لتصنع QComboBox عرضه.

إذا كنت ترغب فقط في عرض سلاسل ، يمكنك استخدام ملف QStringListModel, ، المقدمة مع QT.

نصائح أخرى

يمكنك إضافة نموذج إلى الخاص بك QCombobox باستخدام setModel وظيفة. يمكنك استخدام نموذج محدد مسبقًا أو إنشاء خاص بك عن طريق الوراثة من QAbstractItemModel.

سيحتوي النموذج الخاص بك على كائنك لفصل العرض عن البيانات.

يستخدم QT إصدارًا مبسطًا من MVC والذي يحتوي فقط على أجزاء النموذج / العرض.

يمكنك استخدام واحدة من الفئات الفرعية المقدمة QabstractItemModel إذا لم تكن بحاجة إلى أي سلوك متخصص ، فسيعتمد المرء على ما إذا كنت تحتفظ ببياناتك في نظام ملفات أو بنية بيانات في الذاكرة.

يجب عليك قراءة القسم بأكمله النموذج/عرض البرمجة في وثائق QT.

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