Исправлены верхний и нижний колонтитулы с помощью ncurses?

#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. это решение.