2016-11-18 6 views
0

私はcursesで複数の列でコンソールにデータを印刷したいと思います。そうする簡単なアプローチは何ですか?複数の列を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.ljust(30, " ")を使用している間、私は単に、等々line 1line 11line 21line 2line 12line 22line 3、などの順序で繰り返し処理する反復子を使用する必要がありますか?

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

さらに簡単なソリューションがありますか?

私はcursesにはかなり新しいので、一般的なアドバイス+例は素晴らしいでしょう。

答えて

0

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

関連する問題