2012-07-01 7 views
6

जब मैं अपने मैक टर्मिनल में less कमांड का उपयोग करता हूं तो मुझे निर्दिष्ट फ़ाइल का 23 पंक्ति टुकड़ा दिखाया जाता है। अगर मैं फ़ाइल को नीचे ले जाता हूं, तो टर्मिनल विंडो में स्क्रॉल करें, मुझे वर्तमान स्लाइस से पहले कोई फ़ाइल सामग्री दिखाई नहीं दे रही है। इसके बजाय, मैं less का उपयोग करने से पहले टाइप किए गए आदेश देखता हूं।मैं पायथन में एक स्थिर फ़्रेमयुक्त ASCII इंटरफ़ेस कैसे बना सकता हूं?

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

क्या कोई पाइथन मॉड्यूल है जो यह प्रदान करता है? क्या यह एक प्रभाव है कि मैं खुद को लागू कर सकता हूं या इसे लागू करना चाहिए?

यहां कुछ उदाहरण स्क्रीन तत्व हैं जो इस प्रभाव से लाभ उठा सकते हैं।

+-------------------------------------------------------------------+ 
|                 | 
| Dialog dialog dialog dialog dialog dialog dialog dialog dialog | 
| dialog dialog dialog dialog dialog dialog dialog dialog dialog | 
| dialog dialog dialog dialog dialog dialog dialog dialog dialog | 
| dialog dialog dialog dialog dialog dialog dialog dialog dialog | 
| dialog dialog dialog dialog.          | 
|                 | 
|                 | 
|                 | 
+--------------------+---------------+------------------------------+ 
| Attack   |  South  |   HP/Max MP/Max | 
| > Cast Magic  |  -  | Tom: 120/120 60/91 | 
| Use Item   |  New  | > Dick: 27/133 47/47 | 
| Tactics   | Schwartzton | Harry: 87/104 16/113 | 
+--------------------+---------------+------------------------------+ 

उत्तर

6

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

(या तो उस या \r के उदारवादी उपयोग।) मैं दृढ़ता, curses मॉड्यूल का सुझाव के बाद से यह तुम क्या करने के लिए देख रहे हैं के लिए और अधिक लचीलापन प्रदान करना चाहिए होगा।

संपादित करें: यदि आप क्रॉस-प्लेटफ़ॉर्म एप्लिकेशन बनाने में रुचि रखते हैं, तो ध्यान रखें कि curses मॉड्यूल केवल * निक्स सिस्टम पर उपलब्ध है। दस्तावेज के अनुसार:

किसी ने भी कर्सर मॉड्यूल का विंडोज पोर्ट नहीं बनाया है।

ट्यूटोरियल सिफारिश की है कि विंडोज पर इस्तेमाल के लिए this library है, हालांकि यदि डाउनलोड पृष्ठ पर दिनांक कोई संकेत हैं, यह समय का एक उचित मात्रा में अपडेट नहीं किया गया। आप this module देख सकते हैं, जो हाल ही में काफी अधिक दिखता है।

+0

यह बहुत अच्छा है! सौभाग्य से, मैं यूनिक्स/लिनक्स समुदाय में हूं, इसलिए मैं उस पर ध्यान केंद्रित कर सकता हूं। मैं बाद में 'कंसोल' मॉड्यूल को बुकमार्क करूंगा। –

+0

यह पोस्ट पुराना है, और शाप पृष्ठ अब इंगित करता है कि एक विंडोज पोर्ट [इस पृष्ठ] पर मौजूद है (https://pypi.python.org/pypi/UniCurses)। – KGVT

3

आप किस बारे में बात कर रहे हैं curses है। यह एक पायथन मॉड्यूल है जो ncurses के साथ इंटरफेस करता है। curses का उपयोग करने के लिए मैंने पाया है कि सबसे अच्छा ट्यूटोरियल यह है: http://www.dev-explorer.com/articles/python-with-curses

कुछ लोकप्रिय कार्यक्रम जो शाप का उपयोग करते हैं (हालांकि किसी अन्य भाषा से) योग्यता और नैनो हैं।

+0

योग्यता और नैनो शाप का उपयोग करें। vim टर्मकैप का उपयोग करता है (शाप नहीं)। wget और स्याही हार्डकोडेड हैं (कोई शाप नहीं)। –

+0

@ थॉमस डिकी जानना अच्छा है, अपडेट किया गया! – C0deH4cker

1

मैं भी इस मुद्दे से जूझ रहा हूं। मैं एक साधारण क्रॉस प्लेटफ़ॉर्म समाधान चाहता था, इसलिए मैंने asciimatics को widgets का सेट प्रदान करने के लिए इस तरह फॉर्म-आधारित UI बनाने के लिए विस्तारित किया। उदाहरण के लिए:

Text UI widgets

जिसके परिणामस्वरूप कोड अतिरिक्त देशी पुस्तकालयों की स्थापना के बिना काफी संक्षिप्त और (विंडोज, लिनक्स और OSX सहित) किसी भी आधुनिक ओएस पर काम होना चाहिए। जैसा कि आप contact list sample से देख सकते हैं मानक विजेट्स को रखना आसान है और आपकी अधिकांश ज़रूरतें प्रदान करनी चाहिए।

-1

यदि आप एक एसीआईआई गेम बनाना चाहते हैं, तो असीमेटिक्स शायद काम नहीं करेगा, क्योंकि यह मुख्य रूप से रूपों जैसे चीजों के लिए है। शाप का उपयोग निश्चित रूप से जाने का तरीका है।यद्यपि खिड़कियों के लिए आधिकारिक श्राप बंदरगाह नहीं है, लेकिन https://www.lfd.uci.edu/%7Egohlke/pythonlibs/#curses पर एक अच्छा अनौपचारिक है, इसलिए इसे जांचना सुनिश्चित करें।

+0

क्या आपने एसिसीमैटिक्स के लिए दस्तावेज़ पढ़े हैं ?! निम्न-स्तरीय एपीआई सभी चीजें आपको देता है और विंडोज़ पर सीधे बॉक्स पर चलता है। –

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