python-curses

  • 2018-07-15
  • 542
  • 1
  • 8

官方文档

该库是unix和Linux平台下操作终端字符界面的一个标准库。windows下使用会报_curses模块不存在错误,但是这里有python windows非官方库,下载curses.whl安装即可使用

用法

先import

import curses

在使用这个模块的时候必须先初始化

tmp = curses.initscr()

关闭getch或者getkey回显到终端
curses.noecho()

不需要回车确认
curses.cbreak()

开启键盘模式,意思就是按下方向键之类的会得到KEY_UP之类的值
stdscr.keypad(True)

字体和颜色问题

颜色

在使用颜色的时候需要

curses.start_color()

初始化颜色

curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)

第一位参数1代表颜色ID,第二个参数curses.COLOR_RED表示字体颜色,第三个参数curses.COLOR_BLACK表示字体背景色

颜色支持
  • COLOR_MAGENTA
  • COLOR_BLACK
  • COLOR_WHITE
  • COLOR_BLUE
  • COLOR_RED
  • COLOR_CYAN
  • COLOR_YELLOW
  • COLOR_GREED
字体
字体支持

不一定都可用,视觉效果不一样

  • A_BLINK 闪烁字,我反正没看出来闪烁
  • A_BOLD 加粗?我还是没看出来
  • A_DIM 暗淡的,。。。。
  • A_REVERSE 反转背景色和字体色
  • A_STANDOUT 突出显示
  • A_UNDERLINE 下划线

显示文字

tmp.addstr(y, x, str, attr)

y为cursor y坐标,x为cursor x坐标, str为要显示的文字,attr为属性(上面说的颜色和字体)

字体
tmp.addstr(1, 2 'bankroft', curses.A_BLINK)
颜色
tmp.addstr(stdscr.getkey(), curses.color_pair(1))

要同时设置颜色和字体的话用 或 运算

tmp.addstr(1, 2, 'bankroft', curses.color_pair(1)|curses.A_BOLD)

refresh

tmp.refresh()用来刷新屏幕

用户输入

getch

tmp.getch()
刷新屏幕,然后等待用户点击按键,在回显模式开启状态下会将输入值输出到cursor所在位置。注意,这里获取的是整数

tmp.getkey()
和上面的一样,只是获取的值是字母,在开始键盘模式的时候特殊按键(如方向键)会返回类似于KEY_UP字符串

评论

  • PiuGo回复

    催更,催更 😆

发表评论