Как я могу перезагрузить изображение на Kivy + Python - PullRequest
0 голосов
/ 20 ноября 2018

Я использую kivy + phyton для разработки цифрового каталога для IOS и Androdi, но я не знаю, как я могу перезагрузить изображение для этого случая.

На main.py

class Pgrid(Screen):
   _ImagenFavorito = str

   def get_ImgFavorito(self, arg):
      img = arg
      for i in range(len(Heart_Array)):
        if Heart_Array[i][0] == img and Heart_Array[i][1] == 0:
            return 'data/icons/black/heart_empty_icon&16.png'
        else:
            if Heart_Array[i][0] == img and Heart_Array[i][1] == 1:
                return 'data/icons/black/heart_icon&16.png'

def update_corazon(self, picid):
    #lg = picid
    for i in range(len(Heart_Array)):
        if Heart_Array[i][0] == picid:
            Heart_Array[i][1] = 1
            return 'data/icons/black/heart_icon&16.png'
pass

.kv file

<Pgrid>:
   BoxLayout:
      orientation: 'vertical'
      canvas.before:
        Color:
            rgb: .9, .9, .9
       Rectangle:
            size: self.size
            source: 'data/background_lite.png'
    BoxLayout:
        GridLayout:
            rows: 3
            colds: 4
            spacing: 10
            padding: 10, 10

            #GRID 1.1
            GridLayout:
                rows: 2
                clods: 1
                Image:
                    id: pic11
                    source: 'data/products/camabe.jpg'
                BoxLayout:
                    size_hint:1, 0.1
                    canvas.before:
                        Color:
                            rgba: 0, 0, 0, 0
                        Rectangle:
                            size: self.size
                            pos: self.pos
                    ImageButton:
                        id: 11
                        source: root.get_ImgFavorito(11)
                        #size_hint: .2, .2
                        pos_hint: {'center_y': 0.50, 'center_x': 0.50}
                        on_press: root.update_corazon(11)

Когда я запускаю и нажимаю на ImageButton, вызываю roo.update_corazon (11) и обновляю Heart_Array, но я не знаю, как перезагрузить источник этого ImageButton.

Есть идеи? Заранее спасибо


На моем .py я перехожу на это:

 def update_corazon(self, picid):
    for i in range(len(Heart_Array)):
        if Heart_Array[i][0] == picid:
            Heart_Array[i][1] = 1
            self.manager.current = 'pgrid'

А теперь я думаю, что self.manager.current = 'pgrid' будет перезагружать экран Pgrid, но не перезагружать экран: (

1 Ответ

0 голосов
/ 19 февраля 2019

Наконец-то я изменил многие вещи, подобные этой, и теперь все работает:

self.remove_widget(Pgrid(name='pgrid')) 
self.add_widget(Pgrid(name='pgrid')) 

и только для .kv -> on_press: root.update_corazon(xx)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...