1 авг. 2012 г.

Python. Curses


Поискав в инете инфу о 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 — непрозрачный курсор.
Следует отметить, что если не вернуть стандартный курсор по окончании программы, то могут возникнуть некоторые трудности при работе в терминале (не отображаемый курсор или непрозрачный курсор).

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.