我想做一个有两个窗口的终端应用程序。第一个窗口应该读取用户键入的命令(就像在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)

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

谢谢你。

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

  1. python模拟键盘输入字符_Python | 根据关键字符串遍历窗口 模拟键盘输入操作

    在自动化脚本测试某个程序的过程中,偶尔会因为文件读取操作弹出各种信息窗口,导致自动化脚本无法继续往下执行.为了解决这个问题,需要隔一段时间对信息窗口进行一次遍历,针对需要处理的窗口进行模拟键盘输入操作 ...

  2. python点击按钮浏览本地文件_Python button选取本地图片并显示的实例

    从本地文件夹中选取一张图片并在canvas上显示 from tkinter import * from tkinter import filedialog from PIL import Image, ...

  3. python求1到n的乘积_Python简单实现两个任意字符串乘积的方法示例

    本文实例讲述了Python简单实现两个任意字符串乘积的方法.分享给大家供大家参考,具体如下: 题目: 给定两个任意数字组成的字符串,求乘积,字符可能很大,但是python具有无限精度的整数在这里就不需 ...

  4. python 如何快速判断列表是否相同_python如何判断两个list是否相等

    python中的cmp() 方法用于比较两个列表的元素. cmp()方法语法cmp(list1, list2) 参数 list1 -- 比较的列表. list2 -- 比较的列表. 返回值 如果比较的 ...

  5. python绘制折线图怎么样填充空白颜色_Python:填补两幅图之间的空白

    如何在不连续点连接两个地块?我有一个关于不连续点的方程式. import numpy as np import pylab r1 = 1 # AU Earth r2 = 1.524 # AU Mars ...

  6. 【OpenCV】imshow()和namedWindow()之间的关系,解决两个窗口问题

    imshow() 方法原型: void imshow(const string& winname, InputArray mat);     作用: 在指定的窗口显示图片.     参数: c ...

  7. cmd打开python显示不是内部_Python命令行窗口提示“不是内部或外部命令……”的解决方法...

    前提:已在[控制面板\系统和安全\系统\高级系统设置\高级\环境变量]里修改变量Path,编辑系统变量后面添加了[;D:\Python27],可以在命令行模式下正常进入Python交互式环境,并能直接 ...

  8. python编写猜数游戏代码、如果不是整数、显示输入错误_python编写猜数游戏代码、如果不是整数、显示输入错误_数字炸弹游戏程序 用python来实现......

    相信许多小伙伴都玩过数字炸弹游戏,就是指在一定数字范围(一般是整数,不包含边界)里,一个玩家选中一个数字当作炸弹,其余玩家在这个范围含数字,每次只要没猜中炸弹数字,则根据玩家猜的数字缩小范围,直至其中 ...

  9. python导入模块快捷键_Python中的模块导入和读取键盘输入的方法

    导入模块 import 语句 想使用Python源文件,只需在另一个源文件里执行import语句,语法如下: ? 当解释器遇到import语句,如果模块在当前的搜索路径就会被导入. 搜索路径是一个解释 ...

  10. python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

最新文章

  1. python range()内建函数
  2. 【Flutter】Dart 数据类型 Map 类型 ( 创建 Map 集合 | 初始化 Map 集合 | 遍历 Map 集合 )
  3. linux——虚拟机的图形安装、管理以及快照
  4. Kitten编程猫 里的克隆体无法进行边缘检测
  5. docker启动报错  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
  6. vb6 由于超出容量限制 不能创建新事务_分布式限流?你也能轻松玩转(没啥新技术)...
  7. mysql多表添加怎么写_mysql多表连接的几种写法
  8. py2exe打包pyqt程序
  9. wireshark 抓 grpc 包
  10. oracle+日誌語句,oracle维护常用sql语句
  11. [poj1222]EXTENDED LIGHTS OUT(高斯消元)
  12. poj 1695 动态规划
  13. java日历制作日期不对_在我的代码中,为什么Java日期或日历中的月份日期不同? - java...
  14. 机器人动力学与控制学习笔记(十一)————机器人凯恩方程动力学建模
  15. 若依微服务版 数据库设计说明书
  16. 无人机底层开发-MPU6050六轴传感器+磁力计初始化
  17. 日子计算(结构+函数)
  18. 十进制转8421_BCD码
  19. 计算机专业群名有内涵,有内涵高大上的群名
  20. opencv求矩阵的逆_使用OpenCV求模拟矩阵的逆矩阵

热门文章

  1. redis介绍及常见用法
  2. 数据结构基础温故-5.图(上):图的基本概念
  3. c++类与对象(1)——构造,复制构造函数
  4. js 父子标签同时设置onclick,子标签触发父标签onclick解决办法
  5. 在Linux平台使用VNC连接树莓派
  6. 246. Strobogrammatic Number
  7. STM32平台SD卡的FatFS文件系统开发
  8. ASP.NET 数据绑定操作
  9. Linux从初学到精通
  10. 最简单的Windows窗体应用程序,它存在什么问题?