私のperlプログラムは、次のようにループでシステムコールを実行するため、ncursesとrawコンソールの間をジャンプする必要があります(問題を強調するために簡略化されています)。
- init Cdk
- 現在のメニュー
- Cdkをdeinit
- システムコールを実行する
残念ながら、Cdkはインスタンス化ではなくインポート時にncursesを初期化するように見えるので( )、それを無効にする方法がわかりません。この振る舞いは私には完全にばかげているようです。上記のループとは別に、私のプログラムにはデータベースが初期化される特別なモードもあります-この部分はどのような種類のメニューも表示しません(生のコンソール出力のみ)が、今ではすべての出力をメニューでフォーマットする必要があるようです-メニューも使わないうちに!繰り返しになりますが、プログラムのヘルプ出力を印刷するだけで、Cdkウィジェットを生成する必要があるようです-非常識です。use Cdk
Cdk::init()
Cdkを使用しているときに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