Поискав в инете инфу о curses в языке си и python — ничего толкового не нашел. Нашел только кривой мануал на офф сайте питона, да и тот тоже не особо ровный — прыжки с места на место. Решил как и всегда, написать свое объяснение curses «как для себя». Я попрежнему пишу на 2,6 версии.
Задача — вывести цветной текст в терминал.
Вот такое решение получаю.
#!/usr/local/bin/python
#Подключаем модуль curses, с которым, собственно, и работаем
import curses
#Подключаем модуль times, нужен только в конце скрипта для задержки на выход.
import time
#инициалищируем работу с экраном.
stdscr = curses.initscr()
# отключаем отображение курсора в терминале. см. описание ниже.
curses.curs_set(0)
#разрешаем работу с цветом.
curses.start_color()
#Объявляем, так называемую, палитру цветов.
#Палитра состоит из идентификационного номера, цвет текста, цвет фона
curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE)
# просто описанная переменная, хотел проверить вывод значений в следующей процедуре.
a = 1
# процедура выводит строку (и только строку). Строка начнется в координате x=10 и y=10 знакомест. Текст будет окрашен в палитру 1.
stdscr.addstr(10,10, str(a), curses.color_pair(1))
#Обновляем то, что написали.
stdscr.refresh()
#Делаем задержку перед выходом из программы "чтобы посмотреть"
time.sleep(3)
#Возвращаем стандартное отображение курсора.
curses.curs_set(1)
Доступные цвета:
# black 0
# red 1
# green 2
# yellow 3
# blue 4
# magenta 5
# cyan 6
# white 7
хотя даже в доке сказано, что лучше пользовать их через переменные модуля curses — curses.COLOR_BLACK или curses.COLOR_WHITE.
curses.curs_set(значение) - позваляет управлять отображением курсора ввода с клавиатуры в
терминале. Можно использовать следующие значения:
0 — скрыть курсор.
1 — стандартный курсор.
2 — непрозрачный курсор.
Следует
отметить, что если не вернуть стандартный курсор по окончании
программы, то могут возникнуть некоторые трудности при работе в
терминале (не отображаемый курсор или непрозрачный курсор).
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.