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