سؤال

أنا على وشك البدء في كتابة واجهة المستخدم الرسومية لتطبيق توليف وحدات (مثل ALSA Modular Molnth، البيانات النقية، Ingen) التي سيتم استخدامها لتحرير التصحيح (الصوت).

ما أحتاج إليه هو شيء مثل هذا:

Ingen
(مصدر: drobilla.net.)

Pure Data

hallseymrk1?
(مصدر: mcgill.ca.)

لذلك، في الأساس، إنها منطقة حيث يمكنني رسم بعض المستطيلات (المربعات) التي تمثل الوحدات المركبة ذات المنافذ الإدخال والإخراج التي يمكنني الاتصال بها مع الأسلاك.

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

أتساءل عما إذا كان هناك إمكانية لإنشاء تخطيط مخصص يتطلب ببساطة إحداثيات "المربعات" التي تم إنشاؤها ووضعها على الشاشة، بحيث أقوم بتنفيذ المربعات كأعلى فئة فرعية من Qwidget (وإعادة استخدام نظام معالجة الأحداث في QT) وأضيف لهم إلى النافذة كما أنا عادة.

أو ربما هناك طريقة أفضل؟

شكرا لك

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

المحلول

ألق نظرة على QGRAPHISSSCENE و QGRAPHISSVIEW. بهذه الطريقة سوف تكون قادرا على إنشاء مشهد مليء بالعناصر. يمكن لكل عنصر تلقي أحداث الماوس ويمكنك رسمه يدويا.

نصائح أخرى

يمكنك إنشاء فئة تخطيط مخصصة ترث من Qlayout وتفرد وظيفة الإضافة (Qwidget * W) مع الإحداثيات.

شخصيا أنا أستخدم QGRAPHISSVIEW و QGRAPHISSSCENE. يمكنك التعامل مع بعض الأحداث (كحدث الماوس) وتجد بسهولة QGRAPHISSITEM.

إلقاء نظرة على gephex sourcecode على http://www.gephex.org/download.php.

لقد بنوا بالفعل مثل هذه القطعة ل QT، على الرغم من أنه قد يكون رمز قديم بعض الشيء (QT3) والتطبيق المحدد.

كياو

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