2011-12-01 11 views
24

इन 3 के बीच क्या अंतर है? जहां तक ​​मैं इसे समझता हूं वे दोनों शाप को बाध्यकारी प्रदान करते हैं जो टर्मिनल टेक्स्ट-आधारित यूआई के लिए सी लाइब्रेरी है।पायथन एनसीआरएस, सीडीके, यूआरवीआईडी ​​अंतर

मुझे वर्तमान में 3 में से किसी का कोई ज्ञान नहीं है और मैंने कभी भी शाप का उपयोग नहीं किया है। तुम किसकी सिफारिश करना चाहोगे? मैंने कई बार ncurses के बारे में सुना है लेकिन सीडीके के बारे में केवल एक या दो बार (अनुसंधान के माध्यम से) और कभी भी urwid (मुझे लगता है) के बारे में सुना नहीं है।

उत्तर

25

क्या मैं कुछ संदर्भों देखने के बाद मिलता है:

  • ncurses: यह शाप के एक मुक्त सॉफ्टवेयर संस्करण है ताकि आप सभी प्रकार के निम्न स्तर के विवरण के साथ सौदा है।
  • pyCDK: यह एक उच्च स्तर की लाइब्रेरी है जो कुछ विजेट प्रदान करती है। मैंने इसका इस्तेमाल नहीं किया है, लेकिन Sourceforge प्रोजेक्ट पेज के अनुसार यह लंबे समय तक (कम से कम पायथन बाध्यकारी) के लिए अनजान है, इसलिए मैं इस के साथ नहीं जाऊंगा।
  • urwid: मैंने इसका उपयोग किया है और मुझे कहना है कि यह अभी भी थोड़ा कम स्तर है (यह एक विजेट लाइब्रेरी की तुलना में अधिक ढांचा है), लेकिन अभी भी काफी उपयोगी और शाप से अधिक उपयोगकर्ता-मित्रवत है। यूआई ढांचे के रूप में इसमें सभी सामान होते हैं जिन्हें आप आम तौर पर विगेट्स, इवेंट्स और विगेट्स के लेआउट को नियंत्रित करने के तरीके की अपेक्षा करते हैं। कुछ चीजें जो मैं कहूंगा curses के साथ कठिन हैं, लेकिन urwid के साथ आसान हैं: टर्मिनल का आकार बदलते समय अपने विजेट को दोबारा हटाएं और माउस इनपुट इकट्ठा करें (उदाहरण के लिए बटन पर क्लिक करें)।

तो मेरी सिफारिश urwid का उपयोग करना होगा और यदि यह आपकी आवश्यकताओं को पूरा नहीं करता है तो अन्य विकल्पों की तलाश करें।

+2

इसके अलावा, Urwid यूनिकोड इनपुट को अच्छी तरह से संभालता है, जो कई अन्य कंसोल एपीआई नहीं करते हैं। –

+0

मैंने सी ++ क्यूटी 4, जावा स्विंग/एडब्ल्यूटी, सी # नेट, पायथन टीके जैसे कुछ विजेट-टूलकिट्स का उपयोग किया है ... इनमें से सभी समान हैं: विगेट्स की लाइब्रेरी, अन्य विजेट्स, लेआउट, इवेंट रखने के लिए कंटेनर लूप/एसिंक तंत्र। पायथन में 'शाप' शामिल नहीं है जो मैं मूलभूत बातें कहूंगा जो मुझे चाहिए/चाहिए (विजेट्स, कंटेनर, लेआउट, इवेंट लूप तंत्र की लाइब्रेरी)। ||| दूसरी तरफ 'urwid' मूल बातें हैं (विजेट्स, लेआउट, घटना पाश तंत्र की पुस्तकालय)। और इसमें बहुत अच्छे उदाहरण हैं, ट्यूटोरियल, दस्तावेज़ीकरण ताकि आप जल्दी से जा सकें। –

3

मैं पुस्तकालयों के किसी भी उपयोग नहीं किया है, लेकिन मैं यह सोचते हैं रहा है कि आप की बात कर रहे हैं:

  • अजगर के अंतर्निहित curses मॉड्यूल
  • pycdk, एक अजगर इंटरफ़ेस CDK
  • को
  • urwid सांत्वना यूआई पुस्तकालय

वे एक ही लक्ष्य के साथ बस विभिन्न पुस्तकालयों कर रहे हैं: एक सांत्वना आधारित UI के लिए एपीआई प्रदान करते हैं। previous question से, ऐसा लगता है कि curses को निम्न स्तर के बॉयलरप्लेट की आवश्यकता होती है। ध्यान देने योग्य एक बात यह है कि पायथन का curses मॉड्यूल केवल यूनिक्स के तहत उपलब्ध है; यदि आप विंडोज़ पर हैं, तो आप फ्रेड्रिक लुंड द्वारा लिखे गए Console मॉड्यूल को देखना चाहेंगे।

दोनों अन्य विकल्प भी आशाजनक प्रतीत होते हैं, हालांकि urwid विकास के रूप में और अधिक संगठित होने लगते हैं, और अभी भी कुछ हद तक सक्रिय रूप से विकसित हो रहा है।

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