6 Stimmen

Das Attribut BOLD scheint in meinen Curses nicht zu funktionieren

Ich verwende so etwas wie das hier: screen.addstr(text, color_pair(1) | A_BOLD), aber es scheint nicht zu funktionieren.. Allerdings, A_REVERSE und alle anderen Attribut funktioniert!

In der Tat, ich versuche, etwas in weiß zu drucken, aber die COLOR_WHITE druckt es grau und nach einer Weile des Suchens, scheint es, dass das Drucken es grau + BOLD macht es!

Jede Hilfe wäre sehr willkommen.

6voto

jfs Punkte 370717

Hier ist ein Beispielcode (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)

Es scheint alles zu funktionieren.

5voto

David Punkte 67

Ich habe das ausprobiert: screen.addstr(text, curses.color_pair(1) | curses.A_BOLD) und es hat funktioniert!

Also einfach hinzufügen curses. und das sollte genügen. Natürlich am Anfang verwenden: import curses

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X