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)
编辑:与建议的“重复问题”不同,我需要获取字符串,而不是只检测按键。
谢谢你。
python窗口怎么显示我输入的_Python分别用两个窗口显示和输入相关推荐
- python模拟键盘输入字符_Python | 根据关键字符串遍历窗口 模拟键盘输入操作
在自动化脚本测试某个程序的过程中,偶尔会因为文件读取操作弹出各种信息窗口,导致自动化脚本无法继续往下执行.为了解决这个问题,需要隔一段时间对信息窗口进行一次遍历,针对需要处理的窗口进行模拟键盘输入操作 ...
- python点击按钮浏览本地文件_Python button选取本地图片并显示的实例
从本地文件夹中选取一张图片并在canvas上显示 from tkinter import * from tkinter import filedialog from PIL import Image, ...
- python求1到n的乘积_Python简单实现两个任意字符串乘积的方法示例
本文实例讲述了Python简单实现两个任意字符串乘积的方法.分享给大家供大家参考,具体如下: 题目: 给定两个任意数字组成的字符串,求乘积,字符可能很大,但是python具有无限精度的整数在这里就不需 ...
- python 如何快速判断列表是否相同_python如何判断两个list是否相等
python中的cmp() 方法用于比较两个列表的元素. cmp()方法语法cmp(list1, list2) 参数 list1 -- 比较的列表. list2 -- 比较的列表. 返回值 如果比较的 ...
- python绘制折线图怎么样填充空白颜色_Python:填补两幅图之间的空白
如何在不连续点连接两个地块?我有一个关于不连续点的方程式. import numpy as np import pylab r1 = 1 # AU Earth r2 = 1.524 # AU Mars ...
- 【OpenCV】imshow()和namedWindow()之间的关系,解决两个窗口问题
imshow() 方法原型: void imshow(const string& winname, InputArray mat); 作用: 在指定的窗口显示图片. 参数: c ...
- cmd打开python显示不是内部_Python命令行窗口提示“不是内部或外部命令……”的解决方法...
前提:已在[控制面板\系统和安全\系统\高级系统设置\高级\环境变量]里修改变量Path,编辑系统变量后面添加了[;D:\Python27],可以在命令行模式下正常进入Python交互式环境,并能直接 ...
- python编写猜数游戏代码、如果不是整数、显示输入错误_python编写猜数游戏代码、如果不是整数、显示输入错误_数字炸弹游戏程序 用python来实现......
相信许多小伙伴都玩过数字炸弹游戏,就是指在一定数字范围(一般是整数,不包含边界)里,一个玩家选中一个数字当作炸弹,其余玩家在这个范围含数字,每次只要没猜中炸弹数字,则根据玩家猜的数字缩小范围,直至其中 ...
- python导入模块快捷键_Python中的模块导入和读取键盘输入的方法
导入模块 import 语句 想使用Python源文件,只需在另一个源文件里执行import语句,语法如下: ? 当解释器遇到import语句,如果模块在当前的搜索路径就会被导入. 搜索路径是一个解释 ...
- python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法
Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...
最新文章
- python range()内建函数
- 【Flutter】Dart 数据类型 Map 类型 ( 创建 Map 集合 | 初始化 Map 集合 | 遍历 Map 集合 )
- linux——虚拟机的图形安装、管理以及快照
- Kitten编程猫 里的克隆体无法进行边缘检测
- docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
- vb6 由于超出容量限制 不能创建新事务_分布式限流?你也能轻松玩转(没啥新技术)...
- mysql多表添加怎么写_mysql多表连接的几种写法
- py2exe打包pyqt程序
- wireshark 抓 grpc 包
- oracle+日誌語句,oracle维护常用sql语句
- [poj1222]EXTENDED LIGHTS OUT(高斯消元)
- poj 1695 动态规划
- java日历制作日期不对_在我的代码中,为什么Java日期或日历中的月份日期不同? - java...
- 机器人动力学与控制学习笔记(十一)————机器人凯恩方程动力学建模
- 若依微服务版 数据库设计说明书
- 无人机底层开发-MPU6050六轴传感器+磁力计初始化
- 日子计算(结构+函数)
- 十进制转8421_BCD码
- 计算机专业群名有内涵,有内涵高大上的群名
- opencv求矩阵的逆_使用OpenCV求模拟矩阵的逆矩阵