这是我的代码
python 2.7& wxpython 2.8
这三个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的风格?
如何解决这个问题?
答案 0 :(得分:1)
e.GetKeyCode()返回一个int。您不会将int传递给文本控件。文本控件只接受字符串或unicode字符串。因此,您需要将int转换为字符串或执行其他操作。以下是如何投射它:
key = str( e.GetKeyCode() )