6

Pythonでcursesプログラムを書いています。私は curses の初心者ですが、色付きの出力に端末制御シーケンスを使用しました。

ウィンドウ内に印刷するコード スニペットがいくつかあります。それらを構文で強調表示したいと思います。制御シーケンスで強調表示されたコードを出力する pygments などのライブラリを使用することをお勧めします。

最初は pygments の出力を に直接フィードwindow.addstr()しましたが、制御シーケンスがエスケープされ、強調表示された文字列全体が画面に出力されることがわかりました (このように: https://too-young.me/web/repos/curses- highlight.png )。のように、curses で直接表示するにはどうすればよいcatですか?

4

3 に答える 3

4

まさにそれを行う「culour」pythonモジュールがあります。

を使用してインストールするpip install culourと、事前に色付けされた文字列を印刷するために使用できます。

import culour
culour.addstr(window, colored_string)

これにより、ウィンドウに色付けされた文字列が出力されます。

于 2016-02-07T00:18:00.717 に答える
2

これは何度か尋ねられましたが、同じ答えでした: これを行うパーサーを書くことができます。関連する議論のために:

たとえば、次の理由により、ncurses の拡張機能としては適していません。

  • cursesエスケープ シーケンスを生成しますが、さまざまなデバイス用です (「ANSI カラー エスケープ」ではない場合があります)。
  • ncurses (FAQ Why are not my bugs being fixed?を参照) は、このタイプのパーサーが ncurses の内部構造に依存しないため、拡張機能として提供していません。
于 2015-05-12T21:52:58.593 に答える
0

GitHub の " https://github.com/rigordo959/tsWxGTUI_PyVx_Repository "には、自由に使用、研究、変更、再配布できるハイレベル GUI ライブラリがあります。

「curses」低レベル GUI パッケージを使用して Python 2x & 3x に実装されています。Linux nCurses の実装は、通常、元の Unix Curses の実装に取って代わりました。

アプリケーション プログラムは、ピクセル モードの "wxPython" 高レベル GUI API の文字モード サブセットを使用してプログラミングできます。キーボードとマウス入力を備えたディスプレイと、カラー xterm (64 色ペアの 8 色と 256 色ペアの 16 色) および非カラー vt100/vt220 を含むさまざまな端末エミュレーターをサポートします。

Curses を使用すると、テキストの前に属性 (色、下線、太字、反転など) トークンを挿入し、テキストの後に以前の属性を復元するトークンを挿入することで、テキスト文字列に色を付けることができます。例えば:

sampleWindow.attron(curses.A_REVERSE | 
                    curses.color_pair(color_pair_number))
sampleWindow.addstr(begin_y + 3,
                    begin_x + 48,
                    '        ')
sampleWindow.attroff(curses.A_REVERSE |
                     curses.color_pair(color_pair_number))
于 2015-09-11T15:08:39.213 に答える