问题是,任何类都不执行窗口小部件类中的函数,当按下键但命令不起作用时,它不会给出任何错误.
Py.
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.lang import Builder
from kivy.clock import Clock
from functools import partial
from kivy.uix.popup import Popup
Builder.load_file("wideneme.kv")
class Tryer(Popup):
def prot(self):
MyLayout().play_activator()
class MyLayout(Widget):
def __init__(self, **kwargs):
super(MyLayout, self).__init__(**kwargs)
self.empty = False
def op(self):
den = Tryer()
den.open()
def play_activator(self):
self.ids.bt.text = "Changes"
class FirstApp(App):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.ml = MyLayout()
def build(self, **kwargs):
return self.ml
if __name__ == "__main__":
FirstApp().run()
KV.
<MyLayout>:
BoxLayout:
orientation: "vertical"
Button:
id: bt
text: "ML"
size_hint_x: 2
size_hint_y: 2
on_release: root.op()
<Tryer>:
size_hint_x: .5
size_hint_y: .5
Button:
id: btn
text: "Den"
size_hint_x: 1
size_hint_y: 1
on_release: root.prot()
我也try 给一个正常变量赋值,但结果相同.我不能从KV文件内部运行它,因为我需要从原始代码中的python文件运行它,所以不要建议从KV文件内部执行app.root之类的命令,原始代码具有与此处相同的代码,但它没有任何键来运行Widget类中的函数,我无法放置它.它在诸如对象属性和id之类的解决方案中不起作用.