python - 如何在 Kivy Spinner 中通过单击值来更改图像的来源?

标签 python kivy spinner python-3.7

想做一个简单的应用程序,里面有很多图片。 无法理解如何在 main.py 中定义它。 我被 Spinner 按钮事件 on_release 困住了。 这段代码是我尝试做的,但它对我不起作用。

文件main.py

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

class Container(BoxLayout):
    pass    


class testApp(App):
    def build(self):


        return Container()

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

test.kv代码:

<Container>:
    Spinner:
        text: "Map"
        values:"Main plan","Center", "Block A", "Block B", "Block C"
        size_hint: None, None
        size: 155, 44
        pos:2,333

        #on_release: values=("Main plan").imageplan.source='400px.jpg' 
        #on_release: values=("Center").imagecenter.source='center.jpg'
        #on_release: values=("Block A").imageblocka.source='blocka.jpg'

        Image:
            id:imageplan
            source:'mylogo.png'
            size:100,100
            size_hint:None,None
            pos:200,200

最佳答案

您可以使用 DictPropertySpinner 的值与 Image 中显示的内容相关联。

from kivy.app import App
from kivy.properties import DictProperty
from kivy.uix.boxlayout import BoxLayout


class Container(BoxLayout):
    <b>options = DictProperty(
        {"Main plan": "400px.jpg", "Center": "center.jpg", "Block A": "blocka.jpg"}
    )</b>


class testApp(App):
    def build(self):
        return Container()


if __name__ == "__main__":
    testApp().run()
<Container>:
    Spinner:
        id: spinner
        text: "Map"
        <b>values: root.options.keys()</b>
        size_hint: None, None
        size: 155, 44
        pos:2,333

        Image:
            id:imageplan
            <b>source: root.options.get(spinner.text, "mylogo.png")</b>
            size:100,100
            size_hint:None,None
            pos:200,200

关于python - 如何在 Kivy Spinner 中通过单击值来更改图像的来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59725636/

相关文章:

Python-使用导入的 CSV 数据自动变量命名

Python直方图误差条

python - on_stop 事件在 kivy 中没有被调用

android - 微调器提示不显示

python - 无法在 Excel 文件中正确写入提取的项目?

python - 如何在html页面上显示模型字段 - Django

python - Kivy 自定义按钮 on_press 改变 Canvas 颜色

python - 如何用绝对坐标定位Kivy Popup?

android更改微调器中项目的文本颜色

android - 如何在 XML 的微调器中添加提示