QML

2012-02-11 12 views
8

के अंदर होस्टिंग QOpenGL विजेट हो रहा है मेरे पास एक लाइब्रेरी है जो मुझे एक QGLWidget साबित करती है, और इंटरफ़ेस मुझे केवल आकार बदलने/सेट करने और कुछ जीएल एनीमेशन को नियंत्रित करने की अनुमति देता है; लेकिन कोई भी जीएल कमांड बाहर नहीं आया है, मैं इसे जीएलविड्ज शुरू करता हूं, और फिर संदर्भ को लाइब्रेरी में पास करता हूं और बाद में एनीमेशन दिखाने के लिए स्वैप बफर कॉल करता हूं ..QML

मैं इस QGLWidget लाइब्रेरी को QML में एकीकृत करना चाहता हूं, क्या यह संभव है QML के अंदर एक QGLWidget hove? अगर हाँ कैसे?

उत्तर

3

यह पूरी तरह से संभव है:

इन दो लिंक पर एक नज़र डालें! आप लाइब्रेरी को समाहित करने के लिए write a QML plugin कर सकते हैं जो define a new QML element होगा।

फिर आप Q12 दस्तावेज़ से इस प्लगइन को import करेंगे और आप नए तत्व का उपयोग करने और लाइब्रेरी ऑफ़र की सुविधाओं का उपयोग करने के लिए अच्छा होगा।

टिप: यदि ऐप्लिकेशन है कि आपके QML दस्तावेज़ को लोड करता है यह QGLWidget पर है के लिए सेटअप था, तो आप अपने प्लगइन के अंदर एक नया QGLWidget बनाने की जरूरत नहीं होगी। I did this mistake once

This blog post दिखाता है कि कैसे एक सरल/नया QML तत्व स्क्रैच से और QML दस्तावेज़ में इसका उपयोग कैसे करें।

+0

हाय कार्ल, टिप के लिए धन्यवाद, मुझे आज इसे आजमाएं ... :) –

+3

जो भी डाउनवॉट किया गया है, कृपया बताएं क्यों। – karlphillip

+0

पहले 2 लिंक अब काम नहीं करते – wotanii

2

QGLWidget QWidget से निकला है जबकि क्यूएमएल विगेट्स QDeclarativeItem के रूप में लागू किए गए हैं जो QGraphicsObject से निकले हैं और ये दोनों अलग-अलग दुनिया में हैं।

एक QML मद में ओपन चित्र कर के संभावित तरीका एक नया QDeclarativeItem घोषित करने के लिए, QML व्यवस्था करने के लिए यह बेनकाब और फिर इस QDeclarativeItem उपवर्ग के ड्रा विधि ओवरराइड देशी पेंटिंग करने के लिए (beginNativePainting और की endNativePainting फोन करके है ड्रॉ विधि में प्रदान किया गया QPainter उदाहरण)। http://doc.qt.nokia.com/4.7-snapshot/qml-extending.html http://developer.qt.nokia.com/forums/viewthread/4109

संबंधित मुद्दे