【问题标题】:How to change the image source in kivy?如何更改kivy中的图像源?
【发布时间】:2016-08-17 03:39:19
【问题描述】:

我正在尝试制作一个显示一张图片的应用。当我单击某个按钮时,该功能将更改此图像的来源,因此此图像会更改。所以,我尝试只更改行 image.source,我认为正确的方法是使用 stringproperty,但我也没有成功。所以,我的代码是: .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,所以它不起作用。 非常感谢大家,感谢我的新手问题。周末愉快。

【问题讨论】:

    标签: python image kivy


    【解决方案1】:

    问题是您当前的代码没有定义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
    

    【讨论】:

    • 不用写root.ids.image,单独写image就够了。
    猜你喜欢
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多