Как вставить текст из переменной в ярлык kivy, который сделан мной? - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу вставить текст из переменной в метку, которую я сделал. Я хочу ввести дату в переменную fuldate в метку, которая известна как Date_lbl. Но выдает ошибку типа «NameError: имя 'fulldate' не определено». Я много пробовал и не могу найти способ сделать это.

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
import datetime
from kivy.config import Config

Config.set('graphics', 'width', '900')
Config.set('graphics', 'height', '500')
Config.write()

month = datetime.datetime.now().strftime("%B")
date = datetime.datetime.now().strftime("%w")

fulldate = (month+", "+date)

Builder.load_string("""
<SmoothLabel@Label>
    background_color: (0,0,0,0)
    background_normal: ''
    back_color: (255,255,255,1)
    border_radius: [18]
    canvas.before:
        Color:
            rgba: (255,255,255,0.3)
        RoundedRectangle:
            size: self.size
            pos: self.pos
            radius: self.border_radius

<Money_Manager>

    FloatLayout:
        size_hint_y: None
        height:150
        Image:
            pos: 0,350
            source:'image4.png'
            size: self.texture_size
            allow_stretch: True
            keep_ratio: False

        SmoothLabel:
            id: Total_Wealth
            text: "Total Wealth :"
            pos: 600,450
            size_hint: (.3, .2)

        SmoothLabel:
            id: Cash
            text: "Cash             :"
            size_hint: (.3,0.2)
            pos: 600,410

        SmoothLabel:
            id: Savings
            text: "Savings        :"
            size_hint: (.3,0.2)
            pos: 600,370

        SmoothLabel:
            id: Date_lbl
            text: fulldate""")

class Money_Manager(App, FloatLayout):
    def build(self):

        return self

Money_Manager().run()

1 Ответ

0 голосов
/ 08 апреля 2020

Самый простой способ в вашем примере - создать свойство kivy в вашем приложении

class Money_Manager(App, FloatLayout):
    fulldate = StringProperty()
    def build(self):
        self.fulldate = (month+", "+date)
        return self

и получить к нему доступ из файла kv, например, text: app.fulldate

...