【问题标题】:The kivy button behaviour does not switch images when using with `kv lang`与“kv lang”一起使用时,kivy 按钮行为不会切换图像
【发布时间】:2020-02-22 05:01:36
【问题描述】:

目标

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


预期结果

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

实际结果

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

ma​​in.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()


还有 ma​​in_menu.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'


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


非常感谢您的阅读。

【问题讨论】:

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


    【解决方案1】:

    看看下面的代码是否有效。

    <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.."


    代码已更新..再次

    【讨论】:

    • 先生,但我需要一个图像按钮小部件变量我有 10 个图像按钮,所以我怎样才能使其变量?
    • 我无法点击
    猜你喜欢
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多