#python #header #footer #ncurses
#python #заголовок #нижний колонтитул #ncurses
Вопрос:
Я впервые пробую ncurses (через UniCurses для Python). Я пытаюсь разработать консольное приложение с фиксированным верхним и нижним колонтитулами, но в документации неясно, как я буду это делать. Стал бы я использовать окно? Панель? Что-то еще? Я выяснил, как придать текстовой строке собственные цвета переднего плана и фона, но не знаю, как расширить это на всю длину окна консоли. Чтобы получить представление о том, что я пытаюсь сделать, посмотрите на эти скриншоты cmus:
http://cmus.sourceforge.net/#home
Синий заголовок вверху и сине-белый нижний колонтитул внизу — это то, к чему я пытаюсь прийти. Спасибо!
Ответ №1:
Хорошо, разобрался. Вспомогательные окна на помощь:
init_pair(1, COLOR_BLACK, COLOR_WHITE)
header = subwin(stdscr, 1, 80, 0, 0)
wattron(header, COLOR_PAIR(1))
waddstr(header, "Title")
wbkgd(header, COLOR_PAIR(1))
wattroff(header, COLOR_PAIR(1))
Возможно, есть лучший способ сделать это, но это решение.
Ответ №2:
С модулем Python Curses
инициализировать curses и придать ему цвет для использования
from curses import *
stdscr = initscr()
start_color()
init_pair(1,COLOR_RED,COLOR_WHITE)
получить ширину экрана и высоту экрана
max_y, max_x = stdscr.getmaxyx()
создайте заголовок подокна с максимальной шириной терминала
header = stdscr.subwin(1, max_x, 0, 0)
раскрасьте фон заголовка и текст внутри него
header.bkgd(color_pair(1))
что вы хотите, чтобы это говорило
header.addstr('Header Text')
показать все
header.refresh()
Комментарии:
1. это решение.