Как сделать ключевое событие wxpython в textctrl?
Вот мой код
Python 2.7 и wxpython 2.8
эти 3 textctrl, в chat_c(textctrl)
я хочу сделать chat_c и text_c похожими на чат
входные данные chat_c выходные данные text_c
вот почему я использую
def OnReturnDown(self,e):
key = e.GetKeyCode()
self.text_c.SetValue(key) #for check out but doesn't work
if key == wx.WXK_RETURN:
self.text_c.SetValue(self.chat_c.GetValue())
#key bind
self.chat_c.Bind(wx.EVT_KEY_DOWN, self.OnReturnDown)
это сообщение об ошибке
Traceback (most recent call last):
File "C:\workspace\wx_python_test\main_chat_client.py", line 239, in OnReturnDown
self.text_c.SetValue(key) #for check out but doesn't work
File "C:\Python27\Lib\site-packages\wx-2.8-msw-unicode\wx\_controls.py", line 1754, in SetValue
return _controls_.TextCtrl_SetValue(*args, **kwargs)
TypeError: String or Unicode type required
что это такое? Тип Unicode требуется???
может быть, изменить стиль textctrl?
как это можно исправить?
1 ответ
Решение
e.GetKeyCode() возвращает int. Вы не передаете int в текстовый элемент управления. Текстовый элемент управления принимает только строку или строку Юникода. Так что вам нужно будет привести int в строку или сделать что-то еще. Вот как это сделать:
key = str( e.GetKeyCode() )