【问题标题】:How to change background color on click?如何在点击时更改背景颜色?
【发布时间】:2021-07-13 16:11:41
【问题描述】:

我想更改点击时的背景颜色。这似乎并不难,但问题是我在另一个 Kivy 文件中有按钮,而不是在 main.js 文件中。如何从button 获取属性并更改其颜色?

这是我的尝试(代码):

Python:

easy_button = ObjectProperty()
def easy_button(self):
        self.GAME_SPEED = 0.5
MainKV:
#:import menu menu

Game:

<Game>:
    menu_canvas: menu_canvas
    score_widget: score_widget
    canvas.before:
        Rectangle:
            pos: self.pos
            size: self.size
            source: 'images/pixel.jpg'
    Label:
        font_name: "fonts/PermanentMarker-Regular.ttf"
        text: "SCORE " + str(root.score)
        size_hint: .2, .2
        pos_hint: {"x": .03, "y": .8}
        font_size: self.width/3.5
        opacity: 0
        id: score_widget
    MenuWidget:
        id: menu_canvas
 
Second Kivy File:
<MenuWidget>:
    Button:
            text: "Easy"
            font_name: "fonts/PermanentMarker-Regular.ttf"
            size_hint: .18, .15
            background_normal: ''
            background_color: .5, 1, .5, .85
            on_press: root.parent.easy_button()
            pos_hint: {"x": .2, "y": .1}
            font_size: self.width/5.5
            id: easy_button

【问题讨论】:

标签: python kivy


【解决方案1】:

美好的一天。任何导入的 kv 都允许您根据需要使用导入的小部件。当你调用这个小部件时,给它一个id,你可以直接或在回调中改变它的属性。

在您的情况下,您需要向子按钮 id 的 MenuWidget 添加一个属性。然后你可以通过回调函数中的id改变按钮的属性来改变子按钮的属性。

【讨论】:

    猜你喜欢
    • 2019-05-09
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2014-08-07
    • 1970-01-01
    相关资源
    最近更新 更多