Как получить в python нажатую клавишу без нажатия enter? - PullRequest
3 голосов
/ 21 декабря 2010

Я видел здесь решение, но я не хочу ждать, пока нажата кнопка Я хочу, чтобы последняя клавиша была нажата.

Ответы [ 2 ]

4 голосов
/ 21 декабря 2010

Соответствующий вопрос может помочь вам, как упомянул @ S.Lott: Определить в python, какие клавиши нажимаются

Я пишу, хотя, чтобы дать вам совет: не беспокойтесь об этом. Какую программу вы пытаетесь создать? Программы, работающие на терминале, обычно не имеют интерфейса, в котором интересно получать «живые» нажатия клавиш. Не в наши дни. Для программ, работающих в терминале, вам следует позаботиться о полезной командной строке User Interfase с использованием optparse или других модулей.

Для интерактивных программ вы должны использовать библиотеку графического интерфейса пользователя и создать достойный пользовательский интерфейс вместо того, чтобы изобретать велосипед. Что бы вы хотели сделать для того, что вы пытаетесь сделать? Когда пользователь нажимает на иконку, на экране открывается окно с парой кнопок на нем и полдюжины или около того пунктов меню, упакованных в меню «Файл», когда все другие элементы на экране - или - открывается черный терминал вверх, с текстовым интерфейсом 80-х годов с некоторыми выделенными синим цветом пунктами меню и т. д.? Вы можете использовать Tkinter для простых оконных приложений, так как он уже предустановлен в Python + Windows, так что пользователям не нужно беспокоиться об установке дополнительных библиотек.

Перефразируя это просто для ясности: любая программа, для которой требуется пользовательский интерфейс, должна либо иметь библиотеку GUI, либо иметь веб-интерфейс. Попытка создать пользовательский интерфейс, работающий через терминал, - это пустая трата вашего времени и ваших пользователей. Мы больше не в 1989 году.

Если вам абсолютно необходим текстовый интерфейс, вам следует обратиться к библиотеке ncurses. Лучше, чем пытаться изобретать велосипед.

0 голосов
/ 21 декабря 2010

http://code.activestate.com/recipes/134892/

я думаю, это то, что вам нужно

ps, я не видел, что это то же решение, которое вы отклонили ... почему, кстати?* edit:

знаете ли вы:

from msvcrt import getch

работает только в Windows, однако ... (и обобщено в приведенной выше ссылке) отсюда: http://www.daniweb.com/forums/thread115282.html

...