Как кодировать переменную в метке Kivy? - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь создать простую функцию Kivy, которая считает и обновляет отображение в метке как переменную или переменную, которая была преобразована в строку. Использование Python 3.7 и Kivy 1.10.1

Я читал предыдущие вопросы, связанные с ярлыками, но, похоже, они не решают мою проблему. Благодарю.

from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
import time

class SomeData():
    num = 0
    while num < 1000:
        time.sleep(1)
        num+=1

class FirstScreen (Screen):

    runTouchApp(Builder.load_string('''
ScreenManager:
    FirstScreen:

<FirstScreen> 
    BoxLayout:
        orientation: 'vertical'

        GridLayout:
            cols: 3
            spacing: '10dp'
            Button:
            Button:
            Button:

        Label:
            size_hint_y: None
            text: "Below is a scroll of numbers."

        ScrollView:
            Label:
                text_size: self.width, None
                size_hint_y: None
                height: self.texture_size[1]
                halign: 'left'
                valign: 'top'
                text: (num)
    '''))

Файл никогда не создает экран Kivy, а переменная num считается ошибкой в ​​текстовой метке.

1 Ответ

0 голосов
/ 05 июня 2019

Вот версия вашего кода, которая будет, по крайней мере, отображать:

from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.properties import NumericProperty
from kivy.uix.screenmanager import Screen
import time

# class SomeData:
#     num = 0
#     while num < 1000:
#         time.sleep(1)
#         num+=1

class FirstScreen (Screen):
    num = NumericProperty(7)

runTouchApp(Builder.load_string('''
ScreenManager:
    FirstScreen:

<FirstScreen> 
    BoxLayout:
        orientation: 'vertical'

        GridLayout:
            cols: 3
            spacing: '10dp'
            Button:
            Button:
            Button:

        Label:
            size_hint_y: None
            text: "Below is a scroll of numbers."

        ScrollView:
            Label:
                text_size: self.width, None
                size_hint_y: None
                height: self.texture_size[1]
                halign: 'left'
                valign: 'top'
                text: str(root.num)
    '''))

Класс SomeData закомментирован, так как он не делает ничего, кроме задержки отображения.Также обратите внимание, что изменение значения num в цикле не создаст список чисел, а просто изменит число, отображаемое в Label.

...