كيفية استخدام النموذج لـ QCOMBOBOX
-
01-10-2019 - |
سؤال
أريد أن استخدام QCombobox
كما Combobox
من Swing
في Java
. لذلك أنا بحاجة إلى استخدام Model
لعقد كائني. كيف يمكنني حمل كائني في QCombobox. (أعتقد أنني يجب أن أحمل البيانات في النموذج QCombobox
تم تصميمه وفقًا لنمط MVC ...) سيتم تقدير أي مساعدة.
المحلول
اعتمادًا على ما تريد عرضه مع QComboBox
, ، ستحتاج إلى كتابة النموذج الخاص بك ، وراثيا QAbstractListModel
, ، إعادة تنفيذ rowCount()
و data()
.
ثم استخدام QComboBox::setModel()
لتصنع QComboBox
عرضه.
إذا كنت ترغب فقط في عرض سلاسل ، يمكنك استخدام ملف QStringListModel
, ، المقدمة مع QT.
نصائح أخرى
يمكنك إضافة نموذج إلى الخاص بك QCombobox
باستخدام setModel
وظيفة. يمكنك استخدام نموذج محدد مسبقًا أو إنشاء خاص بك عن طريق الوراثة من QAbstractItemModel
.
سيحتوي النموذج الخاص بك على كائنك لفصل العرض عن البيانات.
يستخدم QT إصدارًا مبسطًا من MVC والذي يحتوي فقط على أجزاء النموذج / العرض.
يمكنك استخدام واحدة من الفئات الفرعية المقدمة QabstractItemModel إذا لم تكن بحاجة إلى أي سلوك متخصص ، فسيعتمد المرء على ما إذا كنت تحتفظ ببياناتك في نظام ملفات أو بنية بيانات في الذاكرة.
يجب عليك قراءة القسم بأكمله النموذج/عرض البرمجة في وثائق QT.