我一直在尝试使此脚本按预期工作,但这样做存在一些问题。我试图根据变量pageCount更改屏幕上显示的字符串,但到目前为止遇到了2个问题。
我希望在getkey()等待按键之前打印第一个字符串(第1页),但是我似乎无法实现。当在屏幕上打印新字符串时,我也无法正确刷新/清除屏幕。
解决这些问题的最佳方法是什么?
from curses import wrapper
def main(stdscr):
# Clear screen
pageCount=0
#stdscr.addstr(str(pageCount))
stdscr.clear()
while True:
key=stdscr.getkey()
if key == "KEY_LEFT":
pageCount=pageCount-1
if key == "KEY_RIGHT":
pageCount=pageCount+1
if pageCount < 1:
pageCount=10
if pageCount > 10:
pageCount=1
if pageCount==1:
stdscr.addstr("page 1")
if pageCount==2:
stdscr.addstr("page 2")
if pageCount==3:
stdscr.addstr("page 3")
if pageCount==4:
stdscr.addstr("page 4")
if pageCount==5:
stdscr.addstr("page 5")
if pageCount==6:
stdscr.addstr("page 6")
if pageCount==7:
stdscr.addstr("page 7")
if pageCount==8:
stdscr.addstr("page 8")
if pageCount==9:
stdscr.addstr("page 9")
if pageCount==10:
stdscr.addstr("page 10")
stdscr.refresh()
wrapper(main)
答案 0 :(得分:0)
只需在getkey()之前打印页面名称即可解决您的问题。您实际上可以使用页面作为字符串中的变量来简化代码,从而避免使用ifs套件。像这样吗?
from curses import wrapper
def main(stdscr):
# Clear screen
pageCount=1
#stdscr.addstr(str(pageCount))
stdscr.clear()
while True:
stdscr.addstr("page %d"%(pageCount))
key=stdscr.getkey()
if key == "KEY_LEFT":
pageCount=pageCount-1
if key == "KEY_RIGHT":
pageCount=pageCount+1
if pageCount < 1:
pageCount=10
if pageCount > 10:
pageCount=1
stdscr.refresh()
wrapper(main)