python - 如何更改kivy中的图像源?

标签 python image kivy

我正在尝试制作一个显示一张图片的应用。当我点击某个按钮时,该函数将更改该图像的来源,因此该图像将发生变化。所以,我只尝试更改 image.source 行,我认为正确的方法是使用字符串属性,但我也没有成功。所以,我的代码是: .py

class PrimeiroScreen(Screen):
    def __init__(self, **kwargs):
        self.name = 'um'
        super(Screen,self).__init__(**kwargs)
        fonte = StringProperty('cafe.jpg')

    def fc1(self):
        self.ids.image.source = (fonte)
        self.ids.image.fonte = "cafe.jpg"
        #self.ids.image.source = "cafe.jpg"


class MyImage(Image):
    fonte = StringProperty()

class RootScreen(ScreenManager):
    pass

和.kv:

<RootScreen>:
    PrimeiroScreen:

<PrimeiroScreen>:
    StackLayout:
        orientation: 'tb-rl'
        ScrollView:
            #size: 100, 100
            #pos_hint: {'center_x': .5, 'center_y': .5}
            GridLayout:
                cols: 1
                padding: 10, 10
                spacing: 5, 5
                size_hint: (None, None)
                size_hint_y:  None
                width: 500
                height: self.minimum_height
                Button:
                    text: "1"
                    #color: 0,0,0,1
                    font_size: '20dp'
                    size: (200, 40)
                    size_hint: (None, None)
                    on_release: root.fc1()
    AnchorLayout:
    Image:
        source:'logo.jpg'
        id: image

我正在学习 AnchorLayout 和 StackLayout,所以它不起作用。 非常感谢大家,回答我的新手问题。周末愉快。

最佳答案

问题是您当前的代码没有定义fonte(至少对我来说复制粘贴),您需要使用self.fonte

但是无论如何,您应该直接访问 source,否则您需要制作另一个函数来处理您的属性更新并在它发生变化时做一些事情,即将它传递给 source,它已经是一个 StringProperty,因此您需要真正绕过解决方案,直到找到它为止。

<RootScreen>:
    PrimeiroScreen:

<PrimeiroScreen>:
    StackLayout:
        orientation: 'tb-rl'
        ScrollView:
            #size: 100, 100
            #pos_hint: {'center_x': .5, 'center_y': .5}
            GridLayout:
                cols: 1
                padding: 10, 10
                spacing: 5, 5
                size_hint: (None, None)
                size_hint_y:  None
                width: 500
                height: self.minimum_height
                Button:
                    text: "1"
                    color: 0,0,0,1
                    font_size: '20dp'
                    size: (200, 40)
                    size_hint: (None, None)
                    on_release: image.source='newcafe.png'
    MyImage:
        source: 'cafe.jpg'
        id: image

关于python - 如何更改kivy中的图像源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36811912/

相关文章:

python - 从 C++ 获取 python 可执行文件的完整路径

python - Kivy 从代码中选择 ListView 中的一个项目

javascript - 使图像不受 iPad 网页上页面缩放的影响

python - Kivy 弹出窗口显示背景小部件

python - 如何在kivy中使用RecycleView?

python - 如何在 PyBrain 中使用函数 normalize()?

python - 避免打印点

python - azure 管道中的 pip install azure-functions 因 pip 验证任务而失败

java - 如何将屏幕上的 Canvas3D 保存为图像?

css 乘以背景图片而不是一张图片