2017-01-29 9 views
0

Pythonのcursesモジュールで画面の最後の位置(右下)にUTF8文字を書き込む方法は?Pythonのcursesを使って画面の最後の位置にUTF8文字を書き込む

タスクは最初はまっすぐに見えるかもしれませんが、そうではありません。まず第一に、Python 2.xはcursesを使用してUTF-8を出力するincapableです。ここではPython 3.xと仮定します。それを行うための2つの明らかな候補があります:

screen.insch(lines - 1, columns - 1, u"\u00a9") 

これはOverflowError: byte doesn't fit in chtypeを与えます。バマー。何について:

screen.addch(lines - 1, columns - 1, u"\u00a9") 

これは動作しますが、画面もスクロールします。実際には2行目の最後の列に書きました。 まだ最後の行の最後の列には、文字がありません。

ほとんどのポジションでは、addchは問題なく機能しますが、最後のポジションでは問題ありません。 inschはUTF8がちょうど壊れています。

答えて

1

それは簡単です:

    は、右下隅に scrollok
  • 移動
  • による失敗した移動過去にaddch
  • キャッチ(および無視)を除いて、文字を追加を使用してスクロールをオフ
  • 右下隅。

ncursesは挿入時に必要なジャグリングを行います。

関連する問題