2010-01-09 9 views
5

मैं इंप्रेशन के तहत हूं कि पायथन ट्राइफॉर्स में आसानी से चलता है। विंडोज़ में चलने वाला एक प्रोग्राम लिनक्स में चलाएगा। क्या यह भावना सही है?यदि मैं विंडोज़ के लिए क्यूटी का उपयोग करता हूं, तो क्या मेरा एप्लिकेशन लिनक्स/मैक/विंडोज पर अच्छा होगा?

कहा करने के बाद कि, अगर मैं Windows के लिए क्यू में अपने आवेदन बनाने के लिए, यह दोषरहित लिनक्स/मैक के साथ-साथ चलेंगे?

धन्यवाद।

उत्तर

8

हां। किसी तरह की संभावना नहीं। यह भी देखें: जावा और "एक बार लिखें, कहीं भी चलाएं"।

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

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

लेकिन चौखटे और पुस्तकालयों, आवेदन काम पार मंच बनाने की सावधान चुनाव के माध्यम से परंपरागत से "पोर्टिंग" बग फिक्सिंग की तरह और अधिक हो जाएगा।

2

हां। क्यूटी का उपयोग करके आप जो कोड लिखते हैं वह बिना किसी बदलाव के विंडोज, मैक, लिनक्स/एक्स 11, एम्बेडेड लिनक्स, विंडोज सीई और सिम्बियन पर काम करेगा। आप look here ले सकते हैं।

0

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

क्यूटी एप्लिकेशन ही आम तौर पर में बहुत अच्छी तरह से MacOS पर फिट नहीं है क्योंकि वे डिफ़ॉल्ट रूप से Apple स्क्रिप्ट का समर्थन नहीं है और जरूरी सही कीबाइंडिंग नहीं है है। लेकिन यदि आप उन मुद्दों को ठीक करने के लिए काम करते हैं, तो वे काम करते हैं, लेकिन अच्छी तरह से नहीं। मैक पर, मूल यूआई बनाने के लिए यह बेहतर है। यदि यह एक इन-हाउस ऐप है, तो क्यूटी शायद ठीक है, लेकिन अगर यह बिक्री के लिए है, तो आप कई बिक्री नहीं करेंगे और खुद को कुछ समर्थन परेशानी पैदा करेंगे।

+2

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

1

आम तौर पर - जब तक आप कोड है कि क्यूटी कक्षाओं में शामिल नहीं है का उपयोग नहीं करते - हाँ।

मैं कई बार सिर्फ कंपाइल अनुप्रयोगों मैं Windows के तहत लिनक्स (64 बिट) में लिखा था, और arround दूसरा रास्ता नहीं है। यह हर बार मेरे लिए काम करता है।

अपनी आवश्यकताओं पर निर्भर करता है, आप भी संकलक समस्याओं मिल सकती है, लेकिन मुझे यकीन है कि आप कैसे उनके आसपास काम करने के लिए पता चल जाएगा हूँ। अन्य लोगों ने कुछ मुद्दों का उल्लेख किया जिन्हें आप देखना चाहिए, बस प्रश्न में अन्य पोस्ट पढ़ें।

0

दूसरों के रूप में कहा, सब कुछ जो क्यूटी-कार्यप्रणाली का उपयोग कर सबसे अधिक संभावना काफी दोषरहित चलेगा, जब आप क्यूटी के मंच विशिष्ट कार्यक्षमता का उपयोग न किया जाता है।

वहाँ नहीं है ज्यादा (इसमें से अधिकांश खिड़की-प्रबंधक सामान के साथ क्या करना है) है, लेकिन कुछ बातें अन्य सिस्टम पर काम न करे। लेकिन क्यूटी के दस्तावेज़ीकरण में ऐसी चीजें निश्चित रूप से उल्लेख की जाती हैं।

फिर भी ऐसी चीजें हैं जो क्यूटी का उपयोग करके नहीं की जा सकती हैं, इसलिए आपको सादे पायथन का उपयोग करके खुद को ऐसा करना होगा ... हाँ "पायथन" स्वयं मंच-स्वतंत्र (अच्छी तरह से होना चाहिए) है, लेकिन बहुत सारे हैं अन्य चीजें शामिल ... अच्छी तरह से मुख्य रूप से ओएस। और ओएस कैसे प्रतिक्रिया करता है आपको सभी लक्ष्य ओएस पर एप्लिकेशन का परीक्षण करके स्पष्ट रूप से खोजना होगा।

हाल ही में मैंने एक साधारण सरल जीयूआई एप्लीकेशन लिखा था, जबकि यह विंडोज़ पर दोषपूर्ण था, यह लिनक्स पर नहीं चला था, क्योंकि लिनक्स पायथन पर विंडोज़ की तुलना में यूनिकोड में अलग-अलग फ़ाइलों को एन्कोड किया गया था। इसके अतिरिक्त एक छोटी सी स्क्रिप्ट जो मशीन के मेजबाननाम को वापस करनी चाहिए, जिसने विंडोज़ पर किया था, केवल लिनक्स पर "लोकलहोस्ट" लौटा, जो स्पष्ट रूप से मैं नहीं चाहता था।

5

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

ऐसे क्षेत्र होंगे जहां आपको कुछ क्यूटी कार्यों को कॉल करने की आवश्यकता हो सकती है जो विशिष्ट क्रॉस-प्लेटफ़ॉर्म ट्विक को दूसरों के मुकाबले कुछ प्लेटफार्मों के लिए अधिक महत्वपूर्ण प्रदान करते हैं (जैसे डॉक आइकन) और आपको तुरंत तीनों प्लेटफ़ॉर्म पर पॉलिश एप्लिकेशन नहीं मिलेगा । लेकिन आम तौर पर, आपको एक ऐसे एप्लिकेशन के बहुत करीब रहना चाहिए जो सभी तीनों पर संकलित और चलता है। (आदि भी qmake या किसी ऐसे ही निर्माण प्रणाली का उपयोग करने, के रूप में क्यूटी अनुप्रयोगों के लिए निर्माण प्रक्रिया मंच पर निर्भर करता है की कोशिश करो। विभिन्न झंडे,)

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

मैंने एक बहु-थ्रेडेड 3-डी मल्टीप्लेयर रीयल-टाइम नेटवर्क गेम बनाने के लिए एक टीम के साथ क्यूटी का उपयोग किया है (पढ़ें: गैर-तुच्छ अनुप्रयोग जो कि क्यूटी के कई क्षेत्रों का पूरी तरह से उपयोग करता है) और हम कुछ भी नहीं बल्कि उड़ गए थे क्यूटी की कई प्लेटफार्मों का समर्थन करने की क्षमता की प्रभावशीलता से। (हमने विंडोज़ को लक्षित करते समय ओएस एक्स पर विकसित किया और मैंने नियमित रूप से यह सुनिश्चित किया कि यह अभी भी लिनक्स पर भी चल रहा है।) हमें केवल कुछ प्लेटफ़ॉर्म विशिष्ट बग का सामना करना पड़ा, जिनमें से लगभग सभी ओपनजीएल जैसे गैर-क्यूटी एपीआई के उपयोग से उत्पन्न हुए। (जो आपको वास्तव में कुछ बताएगा, कि ओपनजीएल क्यूटी की तुलना में क्रॉस प्लेटफॉर्म का उपयोग करने के लिए एक संघर्ष था।)

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

लेकिन जल्दी और अक्सर परीक्षण करें। मुझे लगता है कि एक संपूर्ण आवेदन लिखने का आपका दृष्टिकोण नहीं है और फिर परीक्षण एक अच्छा विचार है। क्यूटी के साथ यह संभव है, लेकिन संभावना नहीं है कि आपके पास पोर्टेबल कोड लिखने का अनुभव नहीं है और/या क्यूटी के लिए नए हैं।

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

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