与“kv lang”一起使用时,kivy按钮行为不会切换图像`

2024-09-27 23:16:15 发布

您现在位置:Python中文网/ 问答频道 /正文

目标

  • 制作一个用作按钮的图像小部件。


预期结果

  • 图像按钮必须相应地切换图像。
  • 直接与Python一起使用时,图像按钮可以正确切换图像,但不能与.kv文件一起使用,这会导致以下问题。

实际结果

  • .kv文件仅显示图像。即使在on_presson_release事件调度时,图像也不会切换。

main.py

from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder
from kivy.app import App

Builder.load_file('test1.kv')


class Test(FloatLayout):
    pass


class TestApp(App):
    def build(self):
        return Test()


if __name__ == '__main__':
    TestApp().run()


主菜单。kv:
<ImageButton@ButtonBehavior+Image>

<Test>:
    FloatLayout:
        ImageButton:
            source: 'atlas://data/images/defaulttheme/checkbox_off'
            on_press:
                source: 'atlas://data/images/defaulttheme/checkbox_on'
            on_release:
                source: 'atlas://data/images/defaulttheme/checkbox_off'


上面给出的代码是再现错误的最少量代码


非常感谢您的阅读


Tags: fromtest图像importsourcedataon按钮
1条回答
网友
1楼 · 发布于 2024-09-27 23:16:15

看看下面的代码是否有效

<ImageButton@ButtonBehavior+Image>

<MainMenu>:
    FloatLayout:
        ImageButton:
            source: "C:\\Users\\kanna\\Pictures\\OpenCity-Main_Menu\\PNG\\Build-Icon.png"
            on_press:
                self.source = "C:\\Users\\kanna\\Pictures\\OpenCity-Main_Menu\\PNG\\Build-Icon_Click.png"
            on_release:
                self.source = "C:\\Users\\kanna\\Pictures\\OpenCity-Main_Menu\\PNG\\Build-Icon.png"

主要问题是在on_事件的右侧,如on_presson_release等。语法必须像Python,而不是像kvLang。
因此,您的source: "c:/ bla-bla.."必须是source = "c:/ bla-bla.."


代码已更新。。再次

相关问题 更多 >

    热门问题