Уведомления

Группа в Telegram: @pythonsu

#1 Март 12, 2010 06:47:54

БелыйКлык
От:
Зарегистрирован: 2010-02-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

Подскажите пожалуйста способ создания какого нибудь меню в КОНСОЛЬНОМ приложении. Гуглил - ничего толкового не нашёл.
И ещё вопрос: у меня программа создаёт бэкап данных в архиве. Как можно сделать полосу загрузки или хотябы просто чтобы пока данные копируются чтобы через определённые промежутки времени на экран выводился заданный символ.



Отредактировано (Март 12, 2010 07:13:43)

Офлайн

#2 Март 12, 2010 08:09:14

sumrak_ss
От:
Зарегистрирован: 2009-11-21
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

БелыйКлык
Подскажите пожалуйста способ создания какого нибудь меню в КОНСОЛЬНОМ приложении. Как можно сделать полосу загрузки .
Здесь тебе и меню и прогрессбар http://www.python.su/forum/viewtopic.php?id=6590



Офлайн

#3 Март 12, 2010 12:24:22

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Создание меню

sumrak_ss
Подскажите пожалуйста способ создания какого нибудь меню в КОНСОЛЬНОМ приложении
http://excess.org/urwid/, http://docs.python.org/library/curses.html



Офлайн

#4 Март 12, 2010 18:31:50

БелыйКлык
От:
Зарегистрирован: 2010-02-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

sumrak_ss
Здесь тебе и меню и прогрессбар http://www.python.su/forum/viewtopic.php?id=6590
Тама про виндовые =( Нашёл как сделать меню в линуксе, но и тут не всё в порядке.
Нашёл такой код:
tty.setraw(sys.stdin.fileno())
vib = sys.stdin.read(1)
Из-за tty.setraw(sys.stdin.fileno()) текст смещается вправо, и работает перехват нажатия только один раз =( А без этой строки ничего не перехватывается =(

regall
http://excess.org/urwid/, http://docs.python.org/library/curses.html
I'am no speak is English



Офлайн

#5 Март 13, 2010 03:33:33

sumrak_ss
От:
Зарегистрирован: 2009-11-21
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

БелыйКлык
Тама про виндовые =( Нашёл как сделать меню в линуксе, но и тут не всё в порядке.
Работает в линуксе

import termios, fcntl, sys, os
fd = sys.stdin.fileno()

oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)

oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)

try:
while 1:
try:
c = sys.stdin.read(1)
print "Got character", `c`
except IOError: pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)



Офлайн

#6 Март 13, 2010 11:02:23

БелыйКлык
От:
Зарегистрирован: 2010-02-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

Жалуется на

sumrak_ss
print “Got character”, `c`
пробовал всё взять в скобки, тоже не работает. (Python 3.1)
Если удалить ‘c’ то работает. но ничего не читает и зацикливается



Офлайн

#7 Март 13, 2010 11:08:36

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Создание меню

Срочно читать хотя бы что-нибудь по питону. Особенно 3.1.
Правда, я сомневаюсь что есть не-англоязычная литература по 3-му питону.

Офлайн

#8 Март 13, 2010 15:09:19

БелыйКлык
От:
Зарегистрирован: 2010-02-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

Есть, уже начал изучать (не книга правда а wiki). Просто меню уже для практических целей нужно. Пока пришлось реализовать через командную строку =(



Офлайн

#9 Март 13, 2010 18:51:31

sumrak_ss
От:
Зарегистрирован: 2009-11-21
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

Ferroman
Правда, я сомневаюсь что есть не-англоязычная литература по 3-му питону.
Почему, есть полный перевод Марк Саммерфилд “Програмирование на Python 3. Подробное руководство” http://ruszona.ru/2009/09/26/programmirovanie-na-python-3.html



Офлайн

#10 Апрель 28, 2010 12:28:08

laandrey
От:
Зарегистрирован: 2006-11-24
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание меню

вот пример сканера:

import termios, sys, os

TERMIOS = termios

def getkey():
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~TERMIOS.ICANON & ~TERMIOS.ECHO
new[6][TERMIOS.VMIN] = 1
new[6][TERMIOS.VTIME] = 0
termios.tcsetattr(fd, TERMIOS.TCSANOW, new)
c = None
try:
c = os.read(fd, 1)
finally:
termios.tcsetattr(fd, TERMIOS.TCSAFLUSH, old)
return c


if __name__ == '__main__':
print 'type something'
s = ''
while 1:
c = getkey()
if c == '\n': ## break on a Return/Enter keypress
break
print 'got', c
s = s + c
print c



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version