Python Kivy-kv语言键盘

Python Kivy-kv语言键盘,python,widget,kivy,virtual-keyboard,Python,Widget,Kivy,Virtual Keyboard,我想为使用Kivy1.9.0编写的应用程序添加VKeyboard小部件。我正在使用Python 2.7.12。有没有办法通过kv语言将这个小部件添加到应用程序中?因为在尝试下面的方法时出现了错误:“ValueError:无法解码JSON对象” Button: background_color:1,0,0,0.5 text:'Next word' size_hint:.5,.2 font

我想为使用Kivy1.9.0编写的应用程序添加VKeyboard小部件。我正在使用Python 2.7.12。有没有办法通过kv语言将这个小部件添加到应用程序中?因为在尝试下面的方法时出现了错误:“ValueError:无法解码JSON对象”

        Button:
            background_color:1,0,0,0.5
            text:'Next word'
            size_hint:.5,.2
            font_size:25
            pos_hint:{'center_x':.5}
            on_press:root.word_dict()

        VKeyboard:
            layout:'layout.json'
layout.json

 { "title":"KeyboardPinyin", "description":"Keyboard using for writing pinyin characters", "cols":5, "rows":3, "normal_1":[ ["ā","ā","ā",1], ["ē","ē","ē",1], ["ī","ī","ī",1], ["ō","ō","ō",1], ["ū","ū","ū",1] ], "normal_2": [ ["á","á","á",1], ["é","é","é",1], ["í","í","í",1], ["ó","ó","ó",1], ["ú","ú","ú",1] ], "normal_3": [ ["ǎ","ǎ","ǎ",1], ["ě","ě","ě",1], ["ǐ","ǐ","ǐ",1], ["ǒ","ǒ","ǒ",1], ["ǔ","ǔ","ǔ",1] ], "normal_4": [ ["à","à","à",1], ["è","è","è",1], ["ì","ì","ì",1], ["ò","ò","ò",1], ["ù","ù","ù",1] ] }
回溯(最近一次呼叫最后一次):
文件“C:/Users/joran/.PyCharm50/config/scratches/scratch_33”,第3行,在
data=json.load(打开(os.path.expanduser(“~/layout1.json”))
文件“C:\Python27\lib\json\\ uuuuu init\uuuuuu.py”,第290行,正在加载中
**千瓦)
文件“C:\Python27\lib\json\\ uuuuu init\uuuuuu.py”,第338行,加载
返回\u默认\u解码器。解码
文件“C:\Python27\lib\json\decoder.py”,第366行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
文件“C:\Python27\lib\json\decoder.py”,第382行,原始解码
obj,end=self.scan_一次(s,idx)
UnicodeDecodeError:“utf8”编解码器无法对位置0中的字节0xe1进行解码:数据意外结束
您无法使用它尝试使用utf8解码输入。。。json中有非utf8字符

您应该改为使用unicode表示法
“\u00e0”
等(或者您必须以某种方式指定json的字符编码…我不确定您可以如何立即执行此操作)

回溯(最近的调用最后一次):
文件“C:/Users/joran/.PyCharm50/config/scratches/scratch_33”,第3行,在
data=json.load(打开(os.path.expanduser(“~/layout1.json”))
文件“C:\Python27\lib\json\\ uuuuu init\uuuuuu.py”,第290行,正在加载中
**千瓦)
文件“C:\Python27\lib\json\\ uuuuu init\uuuuuu.py”,第338行,加载
返回\u默认\u解码器。解码
文件“C:\Python27\lib\json\decoder.py”,第366行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
文件“C:\Python27\lib\json\decoder.py”,第382行,原始解码
obj,end=self.scan_一次(s,idx)
UnicodeDecodeError:“utf8”编解码器无法对位置0中的字节0xe1进行解码:数据意外结束
您无法使用它尝试使用utf8解码输入。。。json中有非utf8字符


您应该改为使用unicode表示法
“\u00e0”
等(或者您必须以某种方式指定json的字符编码…我不确定您可以如何立即这样做)

听起来好像layout.json不是有效的json。。。确保你以他们为榜样。。。。或者至少发布layout.json的layout.json:{“title”:“键盘拼音”,“description”:“用于书写拼音字符的键盘”,“cols”:5,“rows”:3,“normal_1”:[“ā”,“ā”,“ē”,“ē”,“ē”,“ē”,“ī”,1”,“ō”,“ō”,“1”,“ū”,“ū”,“ū”,“ū”,“ū”,1],“normalē”,“ē”,“ē”,“ē”,“ē”,“ē”,“ē”,“ī”,“1”],,[“1],”[“正常”3],“正常”3“:[[“学校”、“学校”、“学校”3”,“正常”3”,“正常”3”,“正常”3 3“:[[[“学校”、“学校”、“学校”、“学校”,1”,“除了除了除了除了除了除了除了除了除了除了除了“学校”、“学校”、“”,“”,“”,“除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了“学校”以外”,“学校”、“”、“”、“”、“”、“”、“学校”,”,1”,1,“4688”、“”、“”、“大学”、“大学”、“468”、“大学”、“”、“大学”,”,1”,1”,1”,1”,1],”除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了,“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“4688”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“学校”、“大学”、“大学”、“ù、ù、ù、1]}听起来layout.json不是有效的json…请确保您遵循他们的示例…或者至少发布layout.json这里的layout.json:{“title”:“键盘拼音”,“description”:“用于书写拼音字符的键盘”,“cols”:5,“rows”:3,“normal_1”:[“ā”,“ē”,“ē”,“ē”,“ē”,“ē”,“1”,“ī”,“ī”,“ī”,“ī”,“ī”,“ī”,“ī”,“ī”,“ō”,“ō”,“ō”,“ō”,“ō”,“3月3日,“第3633号”,3月3日,“3月3日”,1],,“正常”2“,,“正常”2“:除了除了除了除了除了除了除了“A”、“A”、“3”、“3”、“3”、“3”、“3 3”外,1],,“正常”2“,,“正常”2“,“正常”2“::::[[“A”,“”,“”,“A”,“A”,“A”,“A”,“3”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,1”,“1”,1”,“1”,“1”,“1”,“1”,“1”,“3”,“正常3”,“正常”3”,“正常”3”,“正常”3”,“正常”3”,“正常3”,“正常3”,“正常3”,“正常3”3”除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除“1”、“1”、“1”、“1”、“1”、“1”、“1”、“2”、“2”、“3”、“1”、“2”、“1”、“1”、“1”、“1”、“2”、“1”、“9”、“1”、“2”、“1”、“2”、“1”、“3”、“1”、“3”、“1”、“1”、“3”、“1”、“3”、“1”、“3”、“1”、“3”ù,“ù”,1]]}在用unicode编写字符后,仍然会出现问题。您的意思是什么?请为其他人发布您的解决方案,或者如果正确,请接受此解决方案。我刚刚制作了GridLayout(而不是VKeyboard)带有按钮,每个按钮都包含我需要的字符,按下按钮时将该字符放入文本输入。我知道这不是问题的“真正”解决方案,但至少有效。在使用unicode编写字符后,问题仍然存在。你的意思是什么?请为其他人发布你的解决方案,或者如果正确,请接受此解决方案。我刚刚提出了GridLayout(而不是VKeyboard)带有按钮,每个按钮都包含我需要的字符,当按下按钮时,会将该字符放入文本输入。我知道这不是问题的“真正”解决方案,但至少是有效的。
Traceback (most recent call last):
  File "C:/Users/joran/.PyCharm50/config/scratches/scratch_33", line 3, in <module>
    data = json.load(open(os.path.expanduser("~/layout1.json")))
  File "C:\Python27\lib\json\__init__.py", line 290, in load
    **kw)
  File "C:\Python27\lib\json\__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe1 in position 0: unexpected end of data