Найти - Пользователи
Полная версия: "Особый" ввод
Начало » Python для новичков » "Особый" ввод
1
BearPro
Работа над моим убер-проектом подходит к концу. С вашей помощью решено уже много проблем, но новые продолжают возникать.
Мне нужно, что бы программа могла работать с клавиатурой. Идея такая: если нажать кнопку 1 - выполнить действие 1, если нажать кнопку 2 - выполнить действие 2, и так далее до 6 и с другими кнопками. При этом мне не хочется пользоваться input'ом, потому что я не хочу нажимать enter - это скажется на удобстве.
Сначала подумал пользоваться PyHook, потому что совсем недавно с ним игрался. Но понял, что использовать его как-то тупо, и вспомнил про то, как *очень давно* захватывал нажатия клавиш, именно в окне программы (в моём случае гуя нет, но тогда это работало и в командной строке). То ли с python for windows extensions, то ли ещё что-то - не помню.
Не подскажите?
FishHook
Найдено когда-то на просторах сети, работает под линухом, под макосью не работает, под виндой не проверялось
 # -*-coding:utf-8-*-
class _Getch:
    """Gets a single character from standard input.  Does not echo to the
screen."""
    def __init__(self):
        try:
            self.impl = _GetchWindows()
        except ImportError:
            self.impl = _GetchUnix()
    def __call__(self): return self.impl()
class _GetchUnix:
    def __init__(self):
        import tty, sys
    def __call__(self):
        import sys, tty, termios
        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)
        try:
            tty.setraw(sys.stdin.fileno())
            ch = sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch
class _GetchWindows:
    def __init__(self):
        import msvcrt
    def __call__(self):
        import msvcrt
        return msvcrt.getch()
getch = _Getch()
import sys
while True:
    i = getch()
    try:
       i = int(i)
    except:
       pass
    else:
       if i < 6:
          print("You enter", i)
       else:
          sys.exit(0)    
BearPro
FishHook
Найдено когда-то на просторах сети, работает под линухом, под макосью не работает, под виндой не проверялось
Под виндой работает отлично, спасибо оогромное.
Это точно то, что мне нужно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB