Перехватывать события ключа/символа TextCtrl и пересылать набранный ключ на стандартный ввод подпроцессаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Перехватывать события ключа/символа TextCtrl и пересылать набранный ключ на стандартный ввод подпроцесса

Сообщение Anonymous »

Я пытаюсь использовать wx.TextCtrl для перехвата событий введенной клавиши и напрямую пересылать введенную клавишу на стандартный ввод подпроцесса. Обратите внимание: для своих особых целей я
полностью отключу функцию редактирования текста с помощью TextCtrl. т. е., когда я печатаю букву,
буква не будет отображаться в TextCtrl, она будет перенаправлена ​​напрямую.

Вот код, иллюстрирующий то, что я хочу.

Код: Выделить всё

# inside the main frame
self.text = wx.TextCtrl(self.panel, wx.ID_ANY, style=wx.TE_MULTILINE)
self.text.Bind(wx.EVT_KEY_DOWN, self.OnKey)
self.text.Bind(wx.EVT_CHAR, self.OnChar)
# ...

def OnKey(self, evt):
keycode = evt.GetKeyCode()
# ENTER

if keycode == 13:
self.subprocess.stdin.read("\n")
if keycode == 9:
self.subprocess.stdin.read("\t")
if keycode == 8:
self.subprocess.stdin.read("\b")
if keycode == 316:
pass # maybe some key will be ignored
else:
evt.skip()

def OnChar(self, evt):
key=chr(keycode)
self.subprocess.stdin.read(key)
Я хочу пересылать «ENTER», «TAB», «BACKSPACE», символы, цифры и т. д., все ключевые события ввода на стандартный ввод, не позволяя TextCtrl вмешиваться. Есть ли хороший способ сделать это? Или мне нужно явно сопоставить каждый ключ один за другим?

Спасибо за любые предложения!

Подробнее здесь: https://stackoverflow.com/questions/488 ... -a-subproc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»