Как изменить изображение кнопки динамически Python - PullRequest
0 голосов
/ 10 июля 2019

Я не изменяю динамически изображение в кнопке в python.Я не знаю, используйте это свойство, чтобы kivy язык мог использовать переменную.

Я хочу изменить язык Python, потому что я управляю временем, когда эта кнопка обладает этим свойством.

main.py

import kivy
kivy.require('1.10.0')

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.config import Config
from kivy.graphics import Color, Rectangle
from kivy.properties import StringProperty
from kivy.uix.image import Image
from kivy.properties import ListProperty, NumericProperty

Config.set('graphics', 'width', 800)
Config.set('graphics', 'height', 580)

global TipoF


class MainWid(ScreenManager):
    def __init__(self,**kwargs):
        super(MainWid,self).__init__()
        global TipoF

        SALIDA_IMG = StringProperty("X.png")

        ScrP = ScreenPrincipal(self)
        wid = Screen(name='start')
        wid.add_widget(ScrP)
        self.add_widget(wid)


class ScreenPrincipal(BoxLayout):
    global TipoF

    def __init__(self, mainwid, **kwargs):
        super(ScreenPrincipal,self).__init__()
        self.mainwid = mainwid

    def PulsaSalida(self, TipoFicha):
        SALIDA_IMG = StringProperty("Y.png")
        TipoF = TipoFicha
        print (TipoF)


class BoxInfo(BoxLayout):
    None

class BoxSalida(BoxLayout):
    None

class ButtonSalida(Button):
    None

class MainApp(App):
    title = "Fichaje"
    def build(self):
        return MainWid()

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

main.kv

<MainWid>:    
    canvas:
        Color:
            rgb: 1,1,1
        Rectangle:
            pos: self.pos
            size: self.size

<ScreenPrincipal>:
    #SALIDA_IMG: SALIDA_IMG
    orientation: 'vertical'
    id: SCRPRIN
    canvas:
        Color:
            rgb: .3,.3,.9,1
        Rectangle:
            pos: self.pos
            size: self.size
    BoxInfo:
        size_hint_y: .70

    BoxLayout:      
        canvas:
            Color:
                rgba: 1,1,1,1
            Rectangle:
                pos: self.pos
                size: self.size         
        size_hint_y: .30

        BoxSalida
            id:boxsalida
            ButtonSalida
                on_release:
                    SCRPRIN.PulsaSalida("S")

<BoxSalida>: 
    padding: 5
    canvas:
        Color:
            rgb: 1,.2,0 
        Rectangle:
            pos: self.pos
            size: self.size


<ButtonSalida>:
    background_color: (1,.1,.4,.8)
    text:"Salida"               
    id: BtnSalida
    Image:
        id: imagesal
        #source: SALIDA_IMG
        center_x: self.parent.center_x
        center_y: self.parent.center_y
        size:(130,130)      

Я пробовал несколько методов, и ни один из них не работает

последняя ошибка:

NameError: name 'SALIDA_IMG' isне определено

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