如何在打字时用 curses 给单词上色?
How to colorize a word with curses while typing?
我是 curses 库的新手,我正在尝试为标准输入着色,但尚未完成。我写了下面的代码,但它们没有像我希望的那样工作,谁能帮我展示如何给标准输入着色?
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import curses
stdscr = curses.initscr()
curses.start_color()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
stdscr.nodelay(1)
q = 1
x = set()
while q != ord("q"):
if len(x) == 3:
stdscr.addstr(0,0, "def", curses.color_pair(1))
if q == ord("d"):
x.add("d")
elif q == ord("e"):
x.add("e")
elif q == ord("f"):
x.add("f")
q = stdscr.getch()
stdscr.getch()
curses.endwin()
您的问题似乎是屏幕更新。此版本将更新放在 x
集是最新的之后:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import curses
stdscr = curses.initscr()
curses.start_color()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
curses.raw()
curses.noecho()
q = -1
x = set()
while q != ord("q"):
if q >= 0:
stdscr.addstr(chr(q))
if q == ord("d"):
x.add("d")
elif q == ord("e"):
x.add("e")
elif q == ord("f"):
x.add("f")
else:
x = set()
if len(x) == 3:
stdscr.addstr("\b\b\bdef", curses.color_pair(1))
x = set()
q = stdscr.getch()
stdscr.getch()
curses.endwin()
我是 curses 库的新手,我正在尝试为标准输入着色,但尚未完成。我写了下面的代码,但它们没有像我希望的那样工作,谁能帮我展示如何给标准输入着色?
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import curses
stdscr = curses.initscr()
curses.start_color()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
stdscr.nodelay(1)
q = 1
x = set()
while q != ord("q"):
if len(x) == 3:
stdscr.addstr(0,0, "def", curses.color_pair(1))
if q == ord("d"):
x.add("d")
elif q == ord("e"):
x.add("e")
elif q == ord("f"):
x.add("f")
q = stdscr.getch()
stdscr.getch()
curses.endwin()
您的问题似乎是屏幕更新。此版本将更新放在 x
集是最新的之后:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import curses
stdscr = curses.initscr()
curses.start_color()
curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
curses.raw()
curses.noecho()
q = -1
x = set()
while q != ord("q"):
if q >= 0:
stdscr.addstr(chr(q))
if q == ord("d"):
x.add("d")
elif q == ord("e"):
x.add("e")
elif q == ord("f"):
x.add("f")
else:
x = set()
if len(x) == 3:
stdscr.addstr("\b\b\bdef", curses.color_pair(1))
x = set()
q = stdscr.getch()
stdscr.getch()
curses.endwin()