python - 如何在 .kv 文件中使用 if 语句

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

我想加载一个特定的图像,在这种情况下,我希望我的游戏显示钢铁侠的图像,但只有当变量“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"

这些是上面的按钮 ^^

最佳答案

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

Kivy » ToggleButton

The ToggleButton widget acts like a checkbox. When you touch or click it, the state toggles between ‘normal’ and ‘down’ (as opposed to a Button that is only ‘down’ as long as it is pressed).

Toggle buttons can also be grouped to make radio buttons - only one button in a group can be in a ‘down’ state.

片段

    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"

关于python - 如何在 .kv 文件中使用 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55407135/

相关文章:

python - 'dict' 对象没有属性 'has_key'

Python Xlsxwriter 无法正常工作

python - 捕获 python 中的错误

python - 允许用户下载在 AWS 上生成的 zip 文件

python - 在 Django 中访问查询集数据并对其执行操作

python-3.x - selenium.common.exceptions.SessionNotCreatedException : Message: session not created: Chrome version must be between 70 and 73 with ChromeDriver

xcode5 - 通过 Fish shell 在 vi​​rtualenv 中安装 kivy 时出现错误 mno-fused-madd

python - 如何在Python多维字典中使用Sqlite3 UPSERT和executemany来克服语法错误,并以键作为占位符?

python - 如何更改 kivy 中 BoxLayout 的顺序?

python - Flask 可插入 View 和需要登录