2
我最近開始學習Kivy並使用它。今天我遇到了一個問題,我不確定這是基維的一個錯誤還是代表我的誤解。這是一個簡化版本。Kivy無法連接kv語言的on_enter回撥
我正在開發一個GUI,在頂部有一個文本輸入用於搜索。我千伏文件看起來像這樣:
#:kivy 1.0
#:import kivy kivy
<SearchPanel>:
searchquery: searchquery
AnchorLayout:
orientation: 'vertical'
anchor_x: 'center'
anchor_y: 'top'
padding: 10
TextInput:
id: searchquery
text: 'What to search for'
size_hint_x: 0.98
size_hint_y: None
height: 30
on_enter: root.search()
應用程序代碼如下所示:
# -*- coding: utf-8 -*-
import kivy
kivy.require('1.4.1')
from kivy.app import App
from kivy.uix.anchorlayout import AnchorLayout
class SearchPanel(AnchorLayout):
def search(self):
pass
class ExampleApp(App):
def build(self):
return SearchPanel()
if __name__ == '__main__':
ExampleApp().run()
的問題是,當我運行的應用程序,我得到這個回溯:
Traceback (most recent call last):
File "example.py", line 24, in <module>
ExampleApp().run()
File "/home/testing/.virtualenvs/kivy2/local/lib/python2.7/site-packages/Kivy-1.4.1-py2.7-linux-x86_64.egg/kivy/app.py", line 523, in run
root = self.build()
File "example.py", line 20, in build
return SearchPanel()
File "/home/testing/.virtualenvs/kivy2/local/lib/python2.7/site-packages/Kivy-1.4.1-py2.7-linux-x86_64.egg/kivy/uix/anchorlayout.py", line 62, in __init__
super(AnchorLayout, self).__init__(**kwargs)
File "/home/testing/.virtualenvs/kivy2/local/lib/python2.7/site-packages/Kivy-1.4.1-py2.7-linux-x86_64.egg/kivy/uix/layout.py", line 60, in __init__
super(Layout, self).__init__(**kwargs)
File "/home/testing/.virtualenvs/kivy2/local/lib/python2.7/site-packages/Kivy-1.4.1-py2.7-linux-x86_64.egg/kivy/uix/widget.py", line 113, in __init__
Builder.apply(self)
File "/home/testing/.virtualenvs/kivy2/local/lib/python2.7/site-packages/Kivy-1.4.1-py2.7-linux-x86_64.egg/kivy/lang.py", line 1217, in apply
self._apply_rule(widget, rule, rule)
File "/home/testing/.virtualenvs/kivy2/local/lib/python2.7/site-packages/Kivy-1.4.1-py2.7-linux-x86_64.egg/kivy/lang.py", line 1346, in _apply_rule
crule, idmap)})
File "_event.pyx", line 184, in kivy._event.EventDispatcher.bind (/tmp/easy_install-PMy51_/Kivy-1.4.1/kivy/_event.c:2038)
KeyError: 'enter'
顯然我不能插入on_enter
回調到根佈局,我做錯了什麼?如果我改變on_enter
與on_text
它的作品。
對於後人,[這裏是文檔](http://kivy.org/docs/api-kivy.uix.textinput.html#kivy.uix.textinput.TextInput),解釋這一點。此外,請務必設置'multiline:False'觸發此(在上述文檔中解釋)。 –