2010-07-15 32 views
5

Tôi đang tạo chương trình hiển thị một số thông tin trong ncurses và sau đó mở vim (sử dụng system) để cho phép người dùng chỉnh sửa tệp. Sau khi vim được thoát ra, mặc dù, màn hình ncurses sẽ không vẽ lại. refreshwrefresh không làm bất cứ điều gì, dẫn đến việc truy cập hoàn toàn menu đẹp của tôi.C - chuyển từ ncurses ui sang chương trình bên ngoài và quay lại

Vì vậy, tôi được gửi trở lại dòng lệnh. Các mục menu sẽ vẽ lại khi tôi di chuyển đến chúng. Di chuyển xung quanh một kết quả chút trong cái gì đó trông như thế này:

Tragedy

Như bạn thấy, tôi không còn là trong môi trường ncurses khá của tôi ,.

Tôi có thể rớt xuống ncurses hoàn toàn và thiết lập lại mọi thứ, nhưng sau đó một số nội dung (như vị trí menu) không được giữ nguyên.

Làm cách nào để thực hiện điều này một cách chính xác? Có cách nào tốt hơn để gọi một số chương trình bên ngoài và trở lại đây một cách duyên dáng không?

Trả lời

1

Tôi chưa bao giờ phải khởi động lại hoàn toàn lời nguyền.

gì nếu bạn làm điều gì đó như

def_prog_mode() sau đó endwin()

thực hiện cuộc gọi hệ thống

và làm mới() nên khôi phục lại nó

+0

Cảm ơn! Điều này dường như làm việc, nhưng bây giờ tôi trở lại giao diện người dùng của mình và không có tổ hợp phím nào của tôi đăng ký. Vì vậy, tôi phải giết chương trình. Bất kỳ ý tưởng? –

+0

làm thế nào để bạn bắt đầu ncurses? initscr();/* khởi tạo thư viện curses */ bàn phím (stdscr, TRUE);/* bật ánh xạ bàn phím */ nonl();/* nói lời nguyền không làm NL-> CR/NL trên đầu ra */ cbreak();/* lấy từng ký tự nhập một lần, không chờ \ n */ noecho();/* không echo input */ Có điều gì đó đang thay đổi phương thức nhập liệu không? bạn có thể gọi cbreak() khi bạn trả lại – Tree77

+0

Tôi đang làm tất cả những điều trên, vẫn không may mắn. –

0

Tách trạng thái chương trình của bạn khỏi trạng thái lời nguyền.

Cách duy nhất mà tôi biết là dừng và khởi động lại hoàn toàn lời nguyền. Nếu chương trình của bạn có một khái niệm rõ ràng về trạng thái bên trong của nó (như nó cần), thì sẽ dễ dàng quay lại cùng một vị trí.

Chúc may mắn!

Các vấn đề liên quan