python窗口怎么显示我输入的_Python分别用两个窗口显示和输入

我想做一个有两个窗口的终端应用程序。第一个窗口应该读取用户键入的命令(就像在vim中键入:一样),而第二个窗口应该显示定期更新的内容(例如:计时器)

为了使显示窗口和命令窗口分别工作,我使用多线程策略。它一开始就有用,但很快当我写了两封以上的信时,显示器就坏了。(右上面板)。

window.getstr部分似乎仍然正常工作,因为当我键入quit+时程序将终止

显示器出问题了,我想是和移动光标或其他东西有关。有人能指出如何正确地做这件事吗?或者,有没有关于使用python和curses创建类似vim的接口的文章?

代码如下:import sys, os, json, time, datetime, math, curses, thread

COUNTER = 0

def my_raw_input(window, r, c, prompt_string):

curses.echo()

window.addstr(r, c, prompt_string)

window.refresh()

input = window.getstr(r + 1, c)

return input

def count(window):

global COUNTER

while True:

window.addstr(3, 0, '%d'%(COUNTER))

if COUNTER >= 1000:

COUNTER = 0

COUNTER += 1

window.refresh()

def main(args):

# create stdscr

stdscr = curses.initscr()

stdscr.clear()

# allow echo, set colors

curses.echo()

curses.start_color()

curses.use_default_colors()

# define 2 windows

command_window = curses.newwin(3, 30, 0, 0)

display_window = curses.newwin(6, 30, 5, 0)

command_window.border()

display_window.border()

# thread to refresh display_window

thread.start_new_thread(count, (display_window,))

# main thread, waiting for user's command.

while True:

command = my_raw_input(command_window, 0, 0, 'Enter your command :')

if command == 'quit':

break

else:

command_window.addstr(1, 0, ' '*len(command))

curses.endwin()

curses.wrapper(main)

编辑:与建议的“重复问题”不同,我需要获取字符串,而不是只检测按键。

谢谢你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值