2016-04-05 41 views
-1

好吧,我現在用的詛咒寫一個Python應用程序,我想中心我從文件終端窗口中的文字,你可以使用這個Python的詛咒讓x和y

curses.LINES and curses.COLS 

我得到的x和y得到這個從here

我猜他們返回x和y爲整數

這裏是我正在做這個

screen.addstr(curses.LINES, curses.COLS, 'Please enter a number...', curses.color_pair(1))

但是當我運行程序我得到這個

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會給你一個float而不是int。嘗試使用'//'(整數除法)而不是'/'(浮點除法)。 – khelwood

+0

工作,但它不是集中文本 – 112madgamer

+0

因爲你沒有考慮到文本本身的長度。你現在正在做的是集中文本的_start_。 – 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