1

curses を使用して複数の列でコンソールにデータを出力したいと思います。そうするための簡単なアプローチは何ですか?

現在、私のアプリケーションは次のような情報を出力します。

import curses
(...)
# create default screen
std_scr = curses.initscr()
(...)
# example
for line in lines:
    std_scr.addstr(line + "\n")
std_scr.refresh()

これにより、次の出力が得られます

line 1
line 2
...
line n

ただし、私が持ちたいのは次のようなものです。

columns = 3
for line in lines:
   # easy way to separate columns

結果は次のようになります。

line 1         | line 11          | line 21
line 2         | line 12          | line 22
...            | ...              | ...
line 10        | line 20          | line 30

これを達成する簡単な方法は何ですか?line 1line 11、 、 、 、 、 、 、 、 、 、 、 line 21line 2line 12line 22、 、などの順序で反復するためにイテレータを使用し、空白を取得するためにline 3使用する必要がありますか?line.ljust(30, " ")

または、curses で複数の画面を作成する必要がありますか?

他にもっと単純な解決策はありますか?

私は呪いにかなり慣れていないので、一般的なアドバイスと例は素晴らしいでしょう。

4

1 に答える 1

0

を使用して画面のサイズを取得し、std_scr.getmaxyx画面の幅を列の数で割ります。また、イテレータの制限から各列の行数を取得します。メッセージを出力するために使用します (そして、例の列と行の数に基づいて、addnstr各呼び出しの y,x 座標のペアを計算します)。addnstr

于 2016-11-18T23:37:25.150 に答える