【问题标题】:How to use an if statement in a .kv file如何在 .kv 文件中使用 if 语句
【发布时间】:2019-03-28 21:29:55
【问题描述】:

我想加载一个特定的图像,在这种情况下,我希望我的游戏显示一个钢铁侠的图像,但只有当变量 'char' 设置为钢铁侠时,玩家将在他们选择玩时设置和他一样。

<Game2>:
    name: "Avengers Tower"
    FloatLayout:
        Image:
            source: "avengerstower.png"

下面这个图像代码是我想在char是钢铁侠时运行的代码

        Image:
            source: "ironmanhover.png" 
            pos_hint: {"x": .6, "y": .05}
            size_hint: .4, .7

        Label:
            text: "You are in the Avengers Tower!"
            pos_hint: {"x": .45, "y": .6}
            font_size: "20dp"
            color: (0,0,0,1)
            size_hint: None, None

        Button:
            text: "North"
            pos_hint: {"x": .45, "y": .85}
            size_hint: None, None
            height: 50
            on_press:
                root.manager.current = "AvengersCourtyard"

下面这段代码是设置 char 值的地方。

<Game>:
    name: "main"
    FloatLayout:
        Image:
            source: "choosecharacter.png"

        Image:
            source: "choosechar.png" 
            pos_hint: {"x": .3, "y": .25}
            size_hint: .4, .8

        Button:
            text: "<- Back"
            font_size: "15dp"
            pos: 40, 510
            size_hint: None, None
            height: 50
            on_press:
                root.manager.current = "Title"

        ToggleButton:
            text: "Iron Man"
            font_size: "15dp"
            pos: 200, 150
            size_hint: None, None
            height: 80
            group: "character"
            on_press:
                char = "Iron Man"

        ToggleButton:
            text: "Thor"
            font_size: "15dp"
            pos: 350, 150
            size_hint: None, None
            height: 80
            group: "character"
            on_press:
                char = "Thor"

        ToggleButton:
            text: "Scarlett Witch"
            font_size: "15dp"
            pos: 500, 150
            size_hint: None, None
            height: 80
            group: "character"
            on_press:
                char = "Scarlett Witch"

        Button:
            text: "Play!"
            height: 50
            font_size: "15dp"
            pos: 650, 60
            size_hint: None, None
            on_press:
                root.manager.current = "Avengers Tower"

这些是上面的切换按钮^^

【问题讨论】:

    标签: python python-3.x kivy kivy-language


    【解决方案1】:

    ToggleButton 没有on_press 事件。它有on_state 事件。

    Kivy » ToggleButton

    ToggleButton 小部件就像一个复选框。当您触摸或单击时 它,状态在“正常”和“关闭”之间切换(而不是 按钮,只要按下它就会“向下”)。

    切换按钮也可以组合成单选按钮 - 只有一个 组中的按钮可以处于“关闭”状态。

    片段

        ToggleButton:
            text: "Iron Man"
            font_size: "15dp"
            pos: 200, 150
            size_hint: None, None
            height: 80
            group: "character"
            #on_press:
            on_state:
                if self.state == "down": \
                print(self.text); \
                root.manager.current = "Avengers Tower"
    
        ToggleButton:
            text: "Thor"
            font_size: "15dp"
            pos: 350, 150
            size_hint: None, None
            height: 80
            group: "character"
            #on_press:
            on_state:
                if self.state == "down": \
                print(self.text); \
                root.manager.current = "Thor"
    
        ToggleButton:
            text: "Scarlett Witch"
            font_size: "15dp"
            pos: 500, 150
            size_hint: None, None
            height: 80
            group: "character"
            #on_press:
            on_state:
                if self.state == "down": \
                print(self.text); \
                root.manager.current = "Scarlett Witch"
    

    【讨论】:

    • 谢谢!我会看看这个并回复你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2020-06-23
    • 2020-12-02
    相关资源
    最近更新 更多