kivymd 使用 root.manager.transition 时出现无效属性名称错误
当我运行这段代码时,第24行出现了一个无效属性名称的错误("root.manager.transition.direction = 'left'")。
MDScreen:
name:"main"
MDFloatLayout:
md_bg_color: 0.149,0.654,0.352,1
Image:
source: "main_photo_1.png"
pos_hint: {"center_x": .5, "center_y": .65}
size_hint: .5,.5
MDLabel:
text: "'welcome"
font_size: 30
pos_hint: {"center_y": .34}
halign: "center"
color: rgba(34,34,34,255)
Button:
text: ""
size_hint: .66, .065
background_color: 0,0,0,0
Image:
source: "log in.png"
center_x: self.parent.center_x
center_y: self.parent.center_y
on_press:
root.manager.transition.direction = 'left'
root.manager.current = "login"
另外,这里是Python代码:
from kivymd.app import MDApp
from kivy.uix.screenmanager import ScreenManager
from kivy.core.window import Window
from kivy.core.text import LabelBase
from kivy.lang import Builder
Window.size = (310,580)
Builder.load_file("login.kv")
class MyApp(MDApp):
def build(self):
screen_manager = ScreenManager()
screen_manager.add_widget(Builder.load_file('main.kv'))
return screen_manager
MyApp().run()
我该如何解决这个问题呢?
1 个回答
0
我觉得在kv
文件中,一个小部件的属性和事件应该放在它的子元素之前。你可以试着把on_press
放在Image
之前:
Button:
text: ""
size_hint: .66, .065
background_color: 0,0,0,0
on_press:
root.manager.transition.direction = 'left'
root.manager.current = "login"
Image:
source: "log in.png"
center_x: self.parent.center_x
center_y: self.parent.center_y