0
我對python和curses有點新,所以有幾個問題。我正在製作一個使用curses生成ui的終端應用程序。我試圖做一些類似於Linux程序top,只是它從XML文件中提取數據。我有這個代碼,我從以前的計算器問題修改。爲了簡化事情,我在這裏更新的動態值只是時間。我的兩個問題如下:python curses動態值+用戶輸入
- 我有
x = screen.getch(7,2)
來檢查用戶是否要退出。與top類似,如果用戶可以輸入「q」退出。但是由於這個原因,時間值並沒有被更新。我如何獲得用戶輸入以及值的動態更新。當我註釋掉screen.getch時,值開始更新。我讀過top正在使用curses的C版本,所以這應該是可能的,只需要在正確的方向上提供幫助。 - 我的第二個問題是關於刷新率。有沒有辦法使用curses api來控制它?我認爲這樣做的簡單方法是使用
time.sleep()
命令,但我不確定這是否是正確的方法?理想情況下,我想每60秒左右更新一次新的xml數據。
我確實在stackoverflow中看到這個Python/curses user input while updating screen,我想問題是類似的,但我有點不知所措的代碼。我還沒有真正理解類,並不能遵循邏輯。我在尋找簡單的東西。我相信這個人結束了使用line = sys.stdin.read(1)
讓他的代碼運行。使用此代替getch時,我沒有任何運氣。我有一些關於x不能使用strip的錯誤()。
from os import system
import curses
import time
x = 0
while x != ord('q'):
screen = curses.initscr()
curses.curs_set(False)
screen.clear()
screen.border(0)
screen.addstr(1, 2, "BLAH BLAH ",
curses.A_REVERSE)
ltime = time.asctime(time.localtime(time.time()))
screen.addstr(3, 2,'BLAH1: ' + ltime)
screen.addstr(4, 2, "BLAH2")
screen.refresh()
x = screen.getch(7,2)
curses.endwin()
您應該閱讀[Python docs Curses Tutorial](https://docs.python.org/2/howto/curses.html)和[window.nodelay](https://docs.python.org/ 2/library/curses.html#curses.window.nodelay)方法。 – msw 2015-03-02 18:45:32
感謝幫助。我之前瀏覽過這個教程,它並沒有很多例子。只是對功能的描述。 – jti107 2015-03-02 19:46:15