Attribute BOLD doesn't seem to work in my curses

前端 未结 2 576
终归单人心
终归单人心 2020-12-21 04:45

I use something like this: screen.addstr(text, color_pair(1) | A_BOLD), but it doesn\'t seem to work.. However, A_REVERSE and all others attribute does work!

In fa

相关标签:
2条回答
  • 2020-12-21 05:16

    I tried this: screen.addstr(text, curses.color_pair(1) | curses.A_BOLD) and it worked!

    So just add curses. and it should do the trick. Of course at the beginning use: import curses

    0 讨论(0)
  • 2020-12-21 05:17

    Here's an example code (Python 2.6, Linux):

    #!/usr/bin/env python
    from itertools import cycle
    import curses, contextlib, time
    
    @contextlib.contextmanager
    def curses_screen():
        """Contextmanager's version of curses.wrapper()."""
        try:
            stdscr=curses.initscr()
            curses.noecho()
            curses.cbreak()
            stdscr.keypad(1)
            try: curses.start_color()
            except: pass
    
            yield stdscr
        finally:
            stdscr.keypad(0)
            curses.echo()
            curses.nocbreak()
            curses.endwin()
    
    if __name__=="__main__":
        with curses_screen() as stdscr:
            c = curses.A_BOLD
            if curses.has_colors():
                curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK)
                c |= curses.color_pair(1)
    
            curses.curs_set(0) # make cursor invisible
    
            y, x = stdscr.getmaxyx()
            for col in cycle((c, curses.A_BOLD)):
                stdscr.erase()
                stdscr.addstr(y//2, x//2, 'abc', col)
                stdscr.refresh()
                time.sleep(1)
    

    All seems to be working.

    0 讨论(0)
提交回复
热议问题