سؤال

وأود أن أكتب متصفح الأصول باستخدام QGraphicsView. انها مختلفة قليلا من الأمثلة باستخدام QGraphicsView وQGraphicsItems، لأنني أريد التمرير واحد فقط، وأريد البنود التي تتحرك تلقائيا، عند تغيير حجم العرض. على سبيل المثال، عندما العرض عرض غير كبيرة بما يكفي لعرضه 4 asssets، فإنها يجب أن يتم عرض مثل هذا:

aaaa
aaaa
aa

ولكن عندما يتم مقعد العرض ويمكن أن تحتوي فقط 3 في صف واحد، فإنه يجب أن يعرض لهم مثل هذا:

aaa
aaa
aaa
a

وأنا لن ترغب في أن نقل هذه الأصول من قبل نفسي، والسماح للرسومات عرض إدارة كل منهم. هل من الممكن بطريقة أو بأخرى؟

وكنت قد كتبت مرة واحدة شيء مثل هذا، ولكن باستخدام QWidget وpaintEvent، رسم جميع الموجودات نفسي وتتبع كم أصول يمكن عرضها في صف واحد. يمكن أن يتم ذلك مع أبسط QGraphicsView؟

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

المحلول

وQGraphicsView يدعم تخطيطات. ما عليك القيام به هو تنفيذ مدير التخطيط الخاص بك، وراثة من QGraphicsLayout.

لتخطيط تحتاجها، نلقي نظرة على المثال تدفق تخطيط كيو تي. وتحويل هذا المثال تعطيك QGraphicsFlowLayout. إضافة QGraphicsItems لهذا التخطيط ووضع تخطيط QGraphicsView في لأن تخطيط، والتي من شأنها أن تفعل خدعة.

نصائح أخرى

وهذا يبدو لي كنت ترغب في قائمة، وليس عرض رسومات. يمكن تعيين قائمة للأشياء عرض التفاف حول مثل التي تريدها. انظر لغز سبيل المثال ، مع إيلاء اهتمام إلى قائمة قطع اللغز على اليسار . يبدو بسيط جدا لانشاء لالحالة المعروضة.

وبطبيعة الحال، إذا كنت ترغب حقا في الرسومات عرض، افترض أنك يمكن إضافة قائمة إلى عرض واستخدام هناك.

وأود أن استخدام تخطيط مخصص للقيام بذلك. محاولة إنشاء فئة تخطيط مخصص أن يرث من QGraphicsLayout وإدارة الطريقة التي يتم وضع العناصر.

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