مشاركة نفس النموذج في مثيلتين qgraphicscene في كيو تي

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

  •  13-09-2019
  •  | 
  •  

سؤال

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

SimScene* pScene1 = new SimScene(model);  // adds model to scene
SimScene* pScene2 = new SimScene(model);  // adds model to scene
QGraphicsView* pView1 = new QGraphicsView();
pView1->setScene(pScene2);
QGraphicsView* pView1 = new QGraphicsView();
pView2->setScene(pScene2);

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

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

المحلول

أعتقد أنك تخزن QCenitems في فصول النماذج. بسبب هذا pscene1 و pscene2 يحاولون مشاركة النموذج نفسه فقط، ولكن أيضا عناصر المشهد. هذا لن يعمل بسبب أي عنصر مشهد يمكن وضعها فقط على مشهد واحد في أي لحظة معينة.

كيف تصلحها؟ جعل نموذج لا يدرك أي واجهة المستخدم الرسومية. دعها تصدر الإخطارات المتغيرة () كلما حدث شيء مثير للاهتمام.

ثم اسمح لكل طراز Simscene التفاف في أي qsceneitems يريده، وتغيير العملية () الإخطارات.

مثال:

نموذج: الرسم البياني، حافة، قمة
واجهة المستخدم الرسوميةSMSCENE، QEDGE، QURTTEX، QSIMINFO، QBABBANGER، وهلم جرا ...

نصائح أخرى

إذا كنت ترغب فقط في عرض تفاعلي ومظهر للقراءة فقط في النموذج الخاص بك، فيمكنك استخدام QGraPhicsScene واحد و 2 QGraPhicsViews. عليك فقط الاتصال ب QGraPhicsView :: SetInteractive (FALSE) على أحدهم. بهذه الطريقة ليس لديك لتغيير أي إشارات عنصر.

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