2015-05-27 5 views
7

मैं एक स्क्रिप्टिंग भाषा की तलाश में हूं जिसे मेरे क्यूटी 5 एप्लिकेशन में एकीकृत किया जा सकता है। एप्लिकेशन में एक सार्वजनिक एपीआई है, जिसे प्लगइन के साथ एप्लिकेशन का विस्तार करने के लिए उपयोग किया जा सकता है। अब मैं एप्लिकेशन में एक स्क्रिप्टिंग भाषा जोड़ना चाहता हूं जो पूरे सार्वजनिक एपीआई तक पहुंच प्रदान करता है। पटकथा भाषा पूरा करना चाहिए आवश्यकताओं निम्नलिखित:क्यूटी अनुप्रयोगों के लिए स्क्रिप्टिंग समर्थन कैसे प्रदान करें?

  • स्क्रिप्ट कोड क्यूटी-आवेदन के भीतर से क्रियान्वित किया जा सकता।
  • उपयोगकर्ता फ़ाइल-सिस्टम, नेटवर्क तक पहुंच सकता है और स्क्रिप्टिंग भाषा से ग्राफिकल तत्वों को बना सकता है।
  • उपयोगकर्ता बाइंडिंग के माध्यम से मेरे क्यूटी आवेदन के सार्वजनिक एपीआई तक पहुंच सकते हैं।
  • मेरे सार्वजनिक एपीआई के लिए स्वचालित रूप से स्क्रिप्ट-भाषा बाइंडिंग जेनरेट करने के लिए एक जेनरेटर उपलब्ध होना चाहिए।
  • सार्वजनिक अपी का हिस्सा होने वाली कक्षाओं के लिए, क्यूटी-एप्लिकेशन और स्क्रिप्टिंग इंजन के बीच वस्तुओं को पार करना संभव होना चाहिए।

    • क्यूटी-स्क्रिप्ट, एक साथ क्यू-स्क्रिप्ट जेनरेटर के साथ:

    मैं निम्नलिखित स्क्रिप्ट-बोली का मूल्यांकन किया।
    स्क्रिप्टिंग भाषा ईसीएमएस्क्रिप्ट/जावास्क्रिप्ट पर आधारित है और इसे आसानी से क्यूटी ऐप्स में एकीकृत किया जा सकता है। यह मेरी सभी आवश्यकताओं और अपेक्षाओं के अनुसार काम करता है। जनरेटर का उपयोग क्यूटी-एपीआई के लिए बाइंडिंग उत्पन्न करने और मेरे आवेदन के सार्वजनिक एपीआई के लिए बाइंडिंग उत्पन्न करने के लिए किया जा सकता है। अफसोस की बात है कि क्यूटी-स्क्रिप्ट मॉड्यूल को qt5.5 के साथ हटा दिया जा रहा है और स्क्रिप्ट जनरेटर अब बनाए रखा गया है।

  • पायथन
    कई पाइथन-क्यूटी बाइंडिंग उपलब्ध हैं।
    Pyside शायद ठीक रहेगा, लेकिन यह निष्क्रिय जैसा प्रतीत होता है। इसके अलावा मुझे सी ++ में पायथन को एम्बेड करना होगा, जो कि बॉक्स के बाहर पाइसाइड द्वारा समर्थित नहीं है, लेकिन पाइथन सी एपीआई द्वारा किया जा सकता है।

आप कौन सी स्क्रिप्टिंग-भाषाएं और औजार सुझाते हैं, जो मेरी सभी आवश्यकताओं को पूरा करते हैं?

+2

QJSEngine और अन्य QML कक्षाओं में अधिक जानकारी क्यूटी-स्क्रिप्ट की जगह और यहां तक ​​कि अगर आपके आवेदन मूल रूप से QML पर आधारित नहीं है अपनी आवश्यकताओं में से कुछ (या सभी) को पूरा करने के लिए सक्षम होना चाहिए। –

+0

@PavelStrakhov मैंने इसके बारे में पढ़ा। लेकिन कार्यक्षमता क्यूटी-स्क्रिप्ट की तुलना में वास्तव में सीमित है। मुझे संदेह है कि स्क्रिप्ट जनरेटर को तुलनीय परिणाम उत्पन्न करने के लिए संशोधित किया जा सकता है (qt-script के बजाय qjsengine का उपयोग करके)। – Dreamcooled

+1

बस ... क्यूएमएल .... –

उत्तर

1

SWIG पाइथन के साथ एक अच्छा विकल्प प्रतीत होता है। एसडब्ल्यूआईजी अभी भी सक्रिय रूप से बनाए रखा है।

हालांकि बड़ा घूँट बॉक्स से बाहर मेरी सभी आवश्यकताओं को पूरा नहीं करता है, यह एक बड़ी बात उन सभी को काम करने के लिए है कि नहीं होना चाहिए:

स्क्रिप्ट कोड क्यूटी के भीतर से क्रियान्वित किया जा सकता -आवेदन।

यह बॉक्स से बाहर समर्थित नहीं है। आपको अपने आवेदन में एक पायथन दुभाषिया एम्बेड करना होगा। https://docs.python.org/2/extending/embedding.html

उपयोगकर्ता फ़ाइल-सिस्टम, नेटवर्क तक पहुंच सकता है और स्क्रिप्टिंग भाषा से ग्राफिकल तत्वों को बना सकता है।

फाइल सिस्टम और नेटवर्क तक पहुंच पाइथन के साथ कोई समस्या नहीं होनी चाहिए।
https://wiki.python.org/moin/GuiProgramming

  • उपयोगकर्ता बाइंडिंग के माध्यम से अपने क्यूटी आवेदन के सार्वजनिक एपीआई पहुँच सकते हैं: चित्रमय userinterfaces बनाने के लिए, वहाँ उपलब्ध पुस्तकालयों के एक बहुत हैं।
  • मेरे सार्वजनिक एपीआई के लिए स्वचालित रूप से स्क्रिप्ट-भाषा बाइंडिंग जेनरेट करने के लिए एक जेनरेटर उपलब्ध होना चाहिए।

यह SWIG द्वारा किया जाता है। वे महान सी ++ और सी ++ 11 समर्थन प्रदान करते हैं।

कक्षाएं कि सार्वजनिक एपीआई का हिस्सा हैं के लिए, यह चारों ओर पास करने के लिए संभव हो जाना चाहिए क्यू-एप्लीकेशन और स्क्रिप्टिंग इंजन के बीच वस्तुओं।

यह C++ बड़ा घूँट द्वारा प्रदान की कार्यप्रणाली का उपयोग संभव है:

  • SWIG_TypeQuery सी ++ प्रकार
  • SWIG_NewPointerObj एक अजगर (प्रॉक्सी) के लिए एक C++ वस्तु धर्मान्तरित वस्तु
  • के बारे में जानकारी हो जाता है
  • SWIG_ConvertPtr एक पाइथन (प्रॉक्सी) ऑब्जेक्ट को वापस C++ ऑब्जेक्ट में परिवर्तित करता है

External runtime chapter

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