내 펄 프로그램은 (문제 강조 간체)과 같은 루프에서 시스템 호출, 실행으로 ncurses를하고 원시 콘솔 사이를 이동해야하는 사용하는 경우 :인쇄 원시 데이터를 저주 개발 키트 (CDK)
-
을
- 초기화는 Cdk
- 현재 메뉴
- deinit CDK 는
- 실행 시스템 호출은
불행하게도 CDK가 나타납니다 을에서 초기화하고 use Cdk
을 가져오고 인스턴스화하지 않음 (Cdk::init()
) 그래서이를 비활성화하는 방법을 모르겠습니다. 이 행동은 나에게 완전히 불합리한 것처럼 보입니다. 위에서 설명한 루프와는 별도로, 나의 프로그램은 또한 데이터베이스가 초기화되는 특별한 모드를 가지고있다 -이 파트는 어떤 종류의 메뉴 (원시 콘솔 출력 만)를 나타내지는 않지만, 이제는 모든 출력을 메뉴로 포맷해야하는 것처럼 보일 것이다. - 메뉴를 사용하지 않는 동안! 그리고 다시 프로그램 도움말 출력을 인쇄하면 현재 Cdk 위젯을 생성해야합니다 - 미친.
Cdk을 사용하거나 ncrewed를 사용하면 쉽게 ncurses를오고 갈 수 있습니까?
일부 예제 코드 :
#!/usr/bin/perl
use Cdk;
eval {popupLabel(["popup before init"]);}; # will fail as init() isn't called
print "Test after use\n"; # won't be printed (which is a problem!)
Cdk::init();
print "Test after init\n"; # won't be printed
popupLabel(["popup after init"]);
Cdk::end();
print "Test after end\n"; # won't be printed
:
여기
Curses::UI
및Curses::UI::Listbox
를 사용하여 내 예 솔루션입니다 다중 항목 메뉴 목록 (나는 Cdk, Curses :: Widget :: Menu, Curses :: UI :: ListBox 및 UDMP를 시도했습니다 - 그들은 모두 절대적으로 끔찍합니다.) 그런 다음 주저하지 말고 몇 가지 힌트를 제공하십시오. – gamen