首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Curses使用循环刷新文本

Python Curses使用循环刷新文本
EN

Stack Overflow用户
提问于 2019-01-29 04:39:55
回答 1查看 1.7K关注 0票数 3

我通过Linux Mint的Xfce终端ssh (也尝试了ssh -t)连接到运行Rasperian Stretch的Raspberry Pi。在Pi上,我有一个Python-Curses示例,我对它进行了修改,试图让当前时间每隔几秒钟“就地”更新一次,覆盖编写本身。但它最初只打印一次时间,然后再也不打印更新过的时间。但是如果我在我的笔记本电脑上手动按" enter“键,时间会更新,如果我多次按"Enter”键,“enter”堆栈和时间显示更新的次数与我按enter的次数一样多。在这种情况下,关于Curses和terminals或Python,可能有一些基本的我不理解的东西。非常感谢。代码如下:

代码语言:javascript
复制
import curses
import traceback
import datetime
import time

try:
    # -- Initialize --
    stdscr = curses.initscr()   # initialize curses screen
    curses.noecho()             # turn off auto echoing of keypress on to screen
    curses.cbreak()             # enter break mode where pressing Enter key
                                #  after keystroke is not required for it to register
    stdscr.keypad(1)            # enable special Key values such as curses.KEY_LEFT etc

    # -- Perform an action with Screen --
    stdscr.border(0)
    stdscr.addstr(5, 5, 'Hello from Curses!', curses.A_BOLD)
    stdscr.addstr(6, 5, 'Press q to close this screen', curses.A_NORMAL)

    while True:
        # stay in this loop till the user presses 'q'
        #stdscr.addstr(7, 5, 'zztop',curses.A_NORMAL)
        ti = str((datetime.datetime.now().time()))
        stdscr.addstr(8, 5, 'Time: '+ ti, curses.A_NORMAL)
        time.sleep(3)

        ch = stdscr.getch()
        if ch == ord('q'):
            break



    # -- End of user code --

except:
    traceback.print_exc()     # print trace back log of the error

finally:
    # --- Cleanup on exit ---
    stdscr.keypad(0)
    curses.echo()
    curses.nocbreak()
    curses.endwin()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-29 07:46:03

您需要在睡眠之前调用stdscr.refresh()以将输出刷新到屏幕。

您可能还想将stdscr.nodelay(1)添加到程序中的初始化序列(即,就在stdscr.keypad(1)下面)。这将以非阻塞方式调用stdscr.getch()。或者,您可以改为调用stdscr.timeout(3000),并完全删除对sleep的调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54409978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档