2016-04-05 13 views
-1

私は呪いを使用してPythonアプリケーションを書いていますし、私はあなたがこのPythonの呪いなっxとy

curses.LINES and curses.COLS 

Iを使用して、xとyを得ることができますドキュメントからターミナルウィンドウで私のテキストを中央にしようとしていますオーケーhere

からこれを得た私は、彼らが整数ここ

としてxとyを返す私はこの

をやっている方法だと思います0

が、私は私はこの

Traceback (most recent call last): 
            File "main.py", line 102, in <module> 
                      main() 
    File "main.py", line 47, in main 
             screen.addstr(curses.LINES/2, curses.COLS/2, 'Please enter a number...', curses.color_pair(1)) 
                 TypeError: integer argument expected, got float 

を取得するプログラムを実行すると、私はセンターを取得するために2で割るのですが、それはあなたがいないだけの中心を計算する必要がエラーに

+0

python 3では、整数を2で割ると、intではなくfloatになります。 '/'(浮動小数点除算)の代わりに '//'(整数除算)を使ってみてください。 – khelwood

+0

は機能しましたが、テキストの中央に配置されていません – 112madgamer

+0

テキスト自体の長さを考慮していないためです。あなたが今やっていることは、テキストの_開始を中心にしています。 – BlackJack

答えて

2

を投げ続けますscreenだけでなく、テキストの長さの半分の開始点を左に移動します。テキストの中心と画面の中心は同じ座標になります。

text = 'Please enter a number...' 
screen.addstr(
    curses.LINES // 2, 
    curses.COLS // 2 - len(text) // 2, 
    text, 
    curses.color_pair(1) 
) 
+0

複数のテキスト文字列を作成せずにこれを行う方法はありますか? – 112madgamer

+0

@ 112madgamer複数のテキスト文字列を作成することはどういう意味ですか?その答えにはただ一つの文字列しかありません。 – BlackJack

+0

私の機能は次のようになっています。http://pastebin.com/E1DfKwTz – 112madgamer

関連する問題