2010-07-15 13 views
5

मैं एक प्रोग्राम बना रहा हूं जो ncurses में कुछ जानकारी प्रदर्शित करता है, और फिर उपयोगकर्ता को फ़ाइल संपादित करने की अनुमति देने के लिए vim (system का उपयोग करके) खोलता है। विम बाहर निकलने के बाद, हालांकि, ncurses स्क्रीन फिर से नहीं जाएगी। refresh और wrefresh कुछ भी नहीं करते हैं, जिसके परिणामस्वरूप मेरे सुंदर मेनू की पूरी कचरा हो जाती है।सी - ncurses ui से बाहरी प्रोग्राम और वापस

तो, मुझे कमांड लाइन पर वापस भेज दिया जाता है। मेनू आइटम जब मैं उनके पास जाता हूं तो फिर से चला जाता है। कुछ में चारों ओर एक सा परिणाम आगे बढ़ते इस तरह दिखता है कि:

Tragedy

आप देख सकते हैं, मैं अब मेरी सुंदर ncurses वातावरण में कर रहा हूँ ,.

मैं पूरी तरह से ncurses को फाड़ सकता हूं और चीजों को फिर से सेट कर सकता हूं, लेकिन फिर कुछ सामान (जैसे मेनू स्थिति) संरक्षित नहीं है।

मैं इसे सही तरीके से कैसे कर सकता हूं? क्या कुछ बाहरी कार्यक्रमों को कॉल करने और यहां शानदार तरीके से वापस आने का एक बेहतर तरीका है?

उत्तर

1

मुझे कभी भी पूरी तरह से श्राप को फिर से शुरू नहीं करना पड़ा।

क्या endwin()

पर अमल करता है, तो आप तो

def_prog_mode() की तरह कुछ करने के सिस्टम कॉल

और ताज़ा() को बहाल करना चाहिए यह

+0

धन्यवाद! ऐसा लगता है, लेकिन हर अब और फिर मैं अपने शाप यूआई पर वापस आ जाता हूं और मेरे किसी भी कीस्ट्रोक रजिस्टर नहीं करता है। तो मुझे कार्यक्रम को मारना है। कोई विचार? –

+0

आप कैसे ncurses init? initscr();/* शाप पुस्तकालय */ कीपैड प्रारंभ करें (stdscr, TRUE);/* कीबोर्ड मैपिंग सक्षम करें */ nonl();/* आउटसोर्स पर एनएल-> सीआर/एनएल नहीं करने के लिए श्राप बताएं */ क्रैब();/* एक समय में एक इनपुट अक्षर ले लो, \ n */ noecho() के लिए कोई प्रतीक्षा नहीं;/* इनपुट गूंज न करें */ क्या कुछ इनपुट विधि बदल रहा है? जब आप – Tree77

+0

वापस लौटते हैं तो आप क्रैक() को कॉल कर सकते हैं, मैं उपरोक्त सभी को कर रहा हूं, फिर भी दुर्भाग्य से कोई भाग्य नहीं। –

0

अपने कार्यक्रम राज्य को शाप स्थिति से अलग करें।

मुझे पता है कि एकमात्र साफ तरीका है कि पूरी तरह से शाप को रोकना और पुनरारंभ करना है। यदि आपके कार्यक्रम में इसकी आंतरिक स्थिति (जैसा कि यह होना चाहिए) की एक साफ धारणा है, तो उसे उसी स्थिति में वापस जाना आसान होना चाहिए।

शुभकामनाएं!

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