Установить фон по умолчанию для asciimatics

#python #terminal #ascii-art #asciimatics

#python #терминал #ascii-art #asciimatics

Вопрос:

Я понимаю, что невозможно указать asciimatics использовать текущую цветовую схему терминала (поскольку asciimatics нет возможности запрашивать терминал). Но я хотел бы, по крайней мере, иметь некоторый контроль и иметь возможность самостоятельно выбирать цветовую схему.

Я нигде не могу найти в документации, как изменить цвет переднего плана / фона по умолчанию.

Я использую стандартную демонстрацию:

 from asciimatics.screen import Screen
from asciimatics.scene import Scene
from asciimatics.effects import Cycle, Stars
from asciimatics.renderers import FigletText

def demo(screen):
    effects = [
        Cycle(
            screen,
            FigletText("ASCIIMATICS", font='big'),
            screen.height // 2 - 8),
        Cycle(
            screen,
            FigletText("ROCKS!", font='big'),
            screen.height // 2   3),
        Stars(screen, (screen.width   screen.height) // 2)
    ]
    screen.play([Scene(effects, 500)])

Screen.wrapper(demo)
  

Я хочу, чтобы фон был желтым. Не фон текстовых элементов, а весь фон ( Screen я бы сказал, фон)

Как мне это сделать?

Ответ №1:

Короткий ответ на ваш вопрос — добавить Background эффект к вашему Scene . Как описано здесь, вы можете установить любой цвет фона.

Однако некоторые эффекты старше других и предшествуют поддержке цвета backvround. К сожалению, Cycle и Stars находятся в этом списке и поэтому не имеют эквивалентной bg настройки, поэтому потребуется обновление, чтобы работать должным образом с этим изменением. Я подозреваю, что их также необходимо будет настроить, чтобы ожидать полного обновления, которое будет выполняться фоном. Зайдите на канал asciimatics gitter, если вам нужно, чтобы это работало.