HTML / CSS UI के साथ देशी C ++ ऐप्स कैसे बनाएं?


84

क्या उपयोगकर्ता इंटरफ़ेस के लिए HTML और CSS का उपयोग करते समय C ++ प्रोग्राम को विकसित करना संभव है? मैं एक Webkit कंटेनर का उपयोग करके जावास्क्रिप्ट के साथ प्रोग्रामिंग के बारे में जानता हूं, लेकिन मैं वास्तव में C ++ विकास में रुचि रखता हूं।

जब मैं विंडोज के तहत विकसित हुआ तो मुझे C # WPF से प्यार हुआ, लेकिन अब मैं लिनक्स चला गया और मुझे इंटरफेस के लिए मार्कअप का उपयोग करने के लिए एक अच्छा टूल नहीं मिला। इसके लिए, मैं HTML और CSS को मिलाना चाहता हूं, जो कि C ++ कोड के साथ WPF जैसी किसी चीज़ के साथ बहुत हल्के और उपयोग में आसान हैं।

ओह, एक और बात: मैं डेस्कटॉप विकास की तलाश कर रहा हूं, वेब की नहीं।

जवाबों:


40

हाँ यह संभव है। आप जो चाहते हैं वह C ++ वेब फ्रेमवर्क है। आप रैपिड वेब एप्लिकेशन डेवलपमेंट के उद्देश्य से CppCMS –a फ्री हाई परफॉर्मेंस वेब डेवलपमेंट फ्रेमवर्क (CMS नहीं) को देखकर शुरू कर सकते हैं ।

संपादित करें : प्रश्न को स्पष्ट किए जाने के बाद, मुझे लगता है कि एवेसमियम आपकी आवश्यकताओं के लिए एक अच्छा विकल्प होगा।

आप WebKit (या गेको) को एम्बेड करके एक ही कार्यक्षमता प्राप्त कर सकते हैं लेकिन जहां तक ​​मुझे पता है कि ठीक वैसा ही है जैसा कि अवेशियम पर्दे के पीछे करता है।

एक विकल्प है librocket -a C ++ इंटरफ़ेस मिडलवेयर पैकेज जिसे गेम एप्लिकेशन के लिए डिज़ाइन किया गया है। जैसा कि आप विवरण से अनुमान लगा सकते हैं कि यह गेम या वास्तविक समय के अनुप्रयोगों के लिए एक अच्छा फिट है।


3
लेकिन क्या यह एक निष्पादन के लिए संकलन होगा? मुझे डेस्कटॉप की तलाश है, वेब की नहीं।
२३:२३ बजे रनीसाल्ट ran

4
क्या आप चाहते हैं कि उपयोगकर्ता ब्राउज़र को आग लगाने और लोकलहोस्ट में नेविगेट करने और अपने एप्लिकेशन के इंटरफ़ेस का उपयोग करने में सक्षम हो ? या क्या आप चाहते हैं कि उपयोगकर्ता एक निष्पादन योग्य खोलें और वेब इंटरफ़ेस के साथ प्रस्तुत किया जाए?

15
@RobertDinu मुझे लगता है कि वह C ++ के साथ एक डेस्कटॉप एप्लिकेशन बनाना चाहता है और HTML / CSS के साथ यूजर इंटरफेस बनाना चाहता है
Leonardo Arroyo

4
@RobertDinu: libRocket ( librocket.com ) नामक एक छोटी / लाइटर लाइब्रेरी भी है जो ओपी के लिए उपयोगी हो सकती है। यदि आपको लगता है कि यह उचित है तो आप इसे अपने उत्तर में जोड़ना चाह सकते हैं।
यीस्ट जूल

मैं देख सकता हूं कि यह बहुत समय कैसे बचाएगा। क्या यह दृष्टिकोण किसी भी बिंदु पर मुद्दों को जन्म देगा?
एक्सपेंडींजा

36

Sciter वास्तव में है कि - C / C ++ API के साथ एम्बेड करने योग्य HTML / CSS इंजन। कॉम्पैक्ट और मल्टी-प्लेटफॉर्म।

और इस लेख को जांचें

Sciter में WPF जैसी ही सुविधा है लेकिन XAML के बजाय HTML / CSS का उपयोग करता है और देशी API का उपयोग करता है।

बॉक्स से बाहर की विशेषताएं:

  • HTML, CSS, SVG, aPNG (एनिमेटेड PNGs), छवि स्प्राइट,
  • <plaintext> - वाक्य रचना हाइलाइटिंग के साथ संपादक,
  • <htmlarea> - WYSIWYG HTML संपादक,
  • <frame type=pager> - प्रिंट पूर्वावलोकन और HTML / CSS प्रिंट,
  • एनिमेशन,
  • HTTP क्लाइंट, REST / JSON क्लाइंट, WebSocket, DataSockets,
  • आदि।

समान स्रोतों से विंडोज, मैकओएस और लिनक्स पर चलने वाले स्कार यूआई के साथ एक ही आवेदन:

यहाँ छवि विवरण दर्ज करें

डिस्क्लेमर: मैं स्क्रिटर इंजन का लेखक हूं।


2
मैं c ++ में एक शुरुआतकर्ता हूं लेकिन मुझे शुरुआती लोगों के लिए दस्तावेज़ीकरण डरावना और डरावना लगता है। दस्तावेज़ीकरण को कोडब्लॉक में डेमो को चलाने के तरीके से शुरू करना चाहिए या यहां तक ​​कि यह देखने के लिए कि यह काम करता है या नहीं ... कृपया अपने में कुछ और मार्केटिंग प्रयास जोड़ें परियोजना
रेपरोजो

@repzero इस लेख की जाँच करें codeproject.com/Articles/859098/… , मुझे लगता है कि यह C ++ शुरुआती के लिए उपयुक्त है।
सी-स्माइल

2
@repzero कोडब्लॉक के रूप में, बस {sciter-sdk} /demos/usciter/usciter.cbp को उस IDE में खोलें, Release64 लक्ष्य का चयन करें और "बिल्ड एंड रन" बटन पर क्लिक करें - आप ऐप को चालू देख सकते हैं।
c-मुस्कान

@ सी-मुस्कान कुछ मार्गदर्शन के लिए धन्यवाद। जब मैंने कोडब्लॉक में प्रोजेक्ट चलाने की कोशिश की, तो मुझे एक घातक त्रुटि मिलती है "gtk / gtk.h ऐसी कोई फाइल या निर्देशिका नहीं" यह त्रुटि "sciter-x में शामिल कथन से निकली थी। -types.h "हेडर फ़ाइल ... मैं डेबियन jessie चला रहा हूँ..मैं एक फ़ोल्डर है जिसका नाम gtk है जिसमें gtk.h फ़ाइल है। यह फ़ोल्डर '/user/include/gtk-2.o/gtk'..any सलाह' में स्थित है?
रिपोजर

Linux Sciter पर GTK3 की आवश्यकता होती है। यदि आप नमूने बनाना चाहते हैं, तो आपको gtk विकास पैकेज की आवश्यकता होगी, कोशिश करेंsudo apt-get install libgtk-3-dev
c-smile

11

मुझे लगता है कि इलेक्ट्रॉन अन्य उत्तरों के लिए एक अच्छा जोड़ होगा।

यह एक Webkit Window चलाने के लिए NodeJS का उपयोग करता है। इलेक्ट्रॉन स्वयं केवल html / css / js है, लेकिन आप अपने इलेक्ट्रॉन ऐप के भीतर किसी भी नोड मॉड्यूल का उपयोग कर सकते हैं - कस्टम सहित, मूल रूप से संकलित C ++ कोड। आपके C ++ कोड को एम्बेड करने के लिए एक संभावित मॉड्यूल नोड-जिप होगा।

हालाँकि, ध्यान रखें कि इस वर्कफ़्लो में अन्य उत्तरों के साथ थोड़ा अधिक जेएस शामिल हो सकता है।

मेरा पसंदीदा पाठ संपादक, एटम , इलेक्ट्रॉन के साथ बनाया गया था।


9

आप अपने ऐप में HTML5 कंटेंट को एम्बेड करने के लिए क्रोमियम एंबेडेड फ्रेमवर्क का उपयोग कर सकते हैं । आपको क्रोमियम की गति और गति प्राप्त होगी और जीयूआई ऐप बनाने की क्षमता उसी तरह से होगी जैसे आप वेब एप्लिकेशन विकसित करते हैं।


5

2019 के अनुसार मेरा सुझाव है कि आप C ++ के लिए उपलब्ध अल्ट्रालाइट एचटीएमएल यूआई इंजन
ओपन सोर्स नहीं देखें। OpenGL और DirectX रेंडरिंग समर्थित है।

Ultralight आपके C ++ ऐप में HTML UI को एकीकृत करने के लिए हल्का, तेज़ विकल्प है।

यह एवज़ोमियम के निर्माता द्वारा बनाया गया है, जिसने दुर्भाग्य से एज़ोमियम को हटाने का फैसला किया है। यह हमें अब मिला है।

यदि आपको हल्के वजन के बजाय कुछ अधिक भारी वजन की आवश्यकता है, तो मैं सीईएफ पर एक नज़र डालने की सलाह देता हूं । यह एक बहुत शक्तिशाली (और खुला स्रोत) उपकरण है।


1
यह बंद किया जा रहा स्रोत बहुत, बहुत दुर्भाग्यपूर्ण है, यह देखते हुए कि एवसोमियम क्या सक्षम था :(
रनिसल्ट सेप

मैंने अल्ट्रालाइट को एक कोशिश दी लेकिन असफल रहा। गलत-सही नहीं मिली त्रुटियों के कारण ब्राउज़र नमूना भी नहीं चलाया जा सका। युक्त फ़ोल्डर मेरे पथ चर में निश्चित रूप से है। बेसिक ऐप को संकलित करने की कोशिश की लेकिन सफल नहीं हुआ। कंपाइलर वर्ग सेटिंग्स नहीं पा सका है जो कि कहीं नहीं घोषित किया गया है क्योंकि मैं grep का उपयोग करके साबित कर सकता हूं। (उबंटू 18.4)
टेस्टालुसिडा

@testalucida आप Ultralight के सुस्त कार्यक्षेत्र में समर्थन प्राप्त कर सकते हैं।
Tomer zeitune
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.