key_events графического интерфейса и стандартного ввода - PullRequest
0 голосов
/ 31 января 2011

Я совершенно не понимаю, что такое stdin и key_events виджета с графическим интерфейсом.

Обычно я думал, что stdin - это обычный способ получить ввод с клавиатуры для процесса.Например, если у меня есть процесс, я мог бы использовать stdin для ввода с клавиатуры.И это обычно используется для указания направления ввода / вывода для подпроцесса, чтобы получить ввод с клавиатуры.Например, я мог бы сделать subprocess.Popen (stdin = PIPE)

С другой стороны, для GUI я использую wx.TexCtrl или py.Shell.shell, чтобы перехватить ключевые события, такие как ввод.

Так что я совершенно запутался, если у меня работает GUI или pyShell, когда я печатаю через клавиатуру, это через stdin или через систему перехвата событий клавиш GUI?Если через систему событий клавиш GUI, как я могу получить ввод клавиатуры?Могу ли я просто перенаправить ввод с клавиатуры на мой дочерний процесс (внутри GUI) как обычное программирование без использования GUI?

Большое спасибо за любые комментарии.

1 Ответ

2 голосов
/ 31 января 2011

Когда вы печатаете, ввод поступает из механизма событий GUI, не из стандартного ввода. Вы спросили, как получить «стандартный ввод с клавиатуры», и ответ на него такой же, как и для любой другой программы: вы читаете ее (но она почти наверняка будет пустой). Важно понимать, что графический интерфейс, вероятно, не имеет стандартного ввода, если он был запущен двойным щелчком по значку на рабочем столе.

И нет, вы не можете "перенаправить ввод с клавиатуры на [ваш] дочерний процесс", если я понимаю ваш вопрос. Stdin действительно не имеет абсолютно никакого отношения к GUI вообще. То, как ввод с клавиатуры читается через графический интерфейс, полностью отключено от стандартного ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...