我是kivy的新人,我有一些问题,希望你能帮助我。
第一 我想知道如果从kivy lang我可以调用外部函数,例如:
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.uix.relativelayout import RelativeLayout
from kivy.config import Config
Config.set('graphics', 'width', '600')
Config.set('graphics', 'height', '300')
Config.set('graphics', 'resizable', False)
def testButton():
print("Woking...")
kw = '''
<Setup>:
Button:
on_touch_down: testButton()
'''
class Setup(RelativeLayout):
def __init__(self, **kwargs):
super(Setup, self).__init__(**kwargs)
Builder.load_string(kw)
runTouchApp(Setup())
我希望在按下按钮时,调用函数&#34; TestButton()&#34;。可能吗?
另一个问题: 我想知道我是否可以创建一个空类并以dinamically方式添加小部件,例如:
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.uix.relativelayout import RelativeLayout
from kivy.config import Config
Config.set('graphics', 'width', '600')
Config.set('graphics', 'height', '300')
Config.set('graphics', 'resizable', False)
def testButton():
print("Woking...")
kw = '''
<Setup>:
RelativeLayout:
Button:
'''
class Setup():
def __init__(self):
# super(Setup, self).__init__(**kwargs)
Builder.load_string(kw)
runTouchApp(Setup())
在前面的第一个代码中,我继承了#34; RelativeLayout&#34;在安装程序类中,但在这一个我想创建&#34; RelativeLayout&#34;没有继承它,它可能??
最后一个问题是,为什么我无法编辑小部件的大小,我把大小,但看起来像没有代码:
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.uix.relativelayout import RelativeLayout
from kivy.config import Config
Config.set('graphics', 'width', '600')
Config.set('graphics', 'height', '300')
Config.set('graphics', 'resizable', False)
kw = '''
<Setup>:
size: 10, 10
TextInput:
size: .1, .1
'''
class Setup(RelativeLayout):
def __init__(self, **kwargs):
super(Setup, self).__init__(**kwargs)
# super(Setup, self).__init__(**kwargs)
Builder.load_string(kw)
runTouchApp(Setup())
我试图设置Setup和TextInput的大小,但在孔窗口中显得非常大。
我希望你能帮助我。谢谢!
答案 0 :(得分:0)
是的,可以在另一个Python脚本中调用内联外部函数/方法或函数/方法。有关详细信息,请参阅以下示例。
from kivy.app import App
from kivy.uix.relativelayout import RelativeLayout
from kivy.uix.button import Button
from kivy.config import Config
Config.set('graphics', 'width', '600')
Config.set('graphics', 'height', '300')
Config.set('graphics', 'resizable', False)
def testButton():
print("Woking...")
class Setup(RelativeLayout):
def __init__(self, **kwargs):
super(Setup, self).__init__(**kwargs)
button = Button(text="Run external method, testButton")
button.bind(on_press=lambda x: testButton())
self.add_widget(button)
class TestExtFuncApp(App):
def build(self):
return Setup()
if __name__ == "__main__":
TestExtFuncApp().run()
#:kivy 1.10.0
<Setup>:
替换&#34;尺寸:0.1,0.1&#34;使用&#34; size_hint:0.1,0.1&#34;。有关详细信息,请参阅以下示例。
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.uix.relativelayout import RelativeLayout
from kivy.config import Config
Config.set('graphics', 'width', '600')
Config.set('graphics', 'height', '300')
Config.set('graphics', 'resizable', False)
kw = '''
<Setup>:
size: 10, 10
TextInput:
size_hint: .1, .1
'''
class Setup(RelativeLayout):
pass
Builder.load_string(kw)
runTouchApp(Setup())