Атрибут BOLD не работает в моих проклятиях - PullRequest
4 голосов
/ 29 ноября 2008

Я использую что-то вроде этого: screen.addstr (text, color_pair (1) | A_BOLD), но, похоже, не работает .. Тем не менее, A_REVERSE и все остальные атрибуты работают!

На самом деле, я пытаюсь напечатать что-то белым, но COLOR_WHITE печатает это серым цветом ... и после некоторого времени поиска кажется, что печать это серого + BOLD делает это!

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

5 голосов
/ 29 ноября 2008

Вот пример кода (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)

Кажется, все работает.

1 голос
/ 27 октября 2018

Я попробовал это: screen.addstr(text, curses.color_pair(1) | curses.A_BOLD) и это сработало!

Так что просто добавьте curses., и это должно сработать. Конечно, в начале использования: import curses

...