/ / Perl Curses :: UI :: Label - perl、text、label、reverse、cursesで必要なときにのみ "reverse"テキストを使用する

Perl Curses :: UI :: Label - perl、text、label、reverse、cursesで必要なときにのみ "reverse"テキストを使う

私はPerl Curses :: UIインターフェースを開発しています。私は解決策を見つけることができない小さな問題を見つけました。

Labelウィジェット固有のオプションの1つが「reverse」です。

-reverse < BOOLEAN >
If BOOLEAN is true, text on the label will be drawn in a reverse font.

基本的に、このテキストは、CTRLの組み合わせを指摘するために使用するナノインターフェイスやその他の多くのCLIインターフェイスのように、黒い前景に白い文字で表示されます。

要点は、ラベルを「反転」に設定すると、テキスト全体が黒で白くなります。私は通常のテキストを、テキスト全体の代わりに白黒のテキストに置き換えるのが好きです。 私はUI.pmとUI / Common.pmを見てみましたが、私の悪いことは実際にどうやってそれを行うのか分かりませんので、私はラベルのテキストフィールドでそれを自分で行うことができます。私はTerm :: ANSIColorを使ってみましたが、関連するエスケープシーケンスを出力します。テキストフィールドに含まれるものは全て、引用符で囲まれていても純粋な文字列として扱われます。

私はどのように進むことができますか?どうもありがとうございました。

回答:

回答№1は0

これは、基本的なCursesインターフェースでサポートされているようには見えません。少なくともPerl XSではサポートされていません。

あなたのニーズの複雑さにもよりますが、ラベルを複数の別々のラベルに分割するのが最も簡単です -reverse 設定します。最後のラベル(オーバーラップを防ぐため)以外のすべての幅、および最初のラベル以外のすべての(ワードの最後に移動する)x座標を指定する必要があることに注意してください。

例えば:

$win->add( undef, "Label", -x => 0, -width => 3, -text => "Hel", -reverse => 1 );
$win->add( undef, "Label", -x => 3, -width => 3, -text => "lo!" );

チェックアウト このPerlMonksの投稿 同じ問題に対する創造的な解決策です