kivymd 使用 root.manager.transition 时出现无效属性名称错误

问题描述 投票:0回答:1

当我运行代码时,第 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()

我该如何解决这个问题?

python kivy kivy-language kivymd
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
© www.soinside.com 2019 - 2024. All rights reserved.