В настоящее время я делаю текстовую игру на Python, и я хотел использовать Kivy для создания графического интерфейса для нее.Пока я не смог заставить его работать.
Причина в том, что я перешел с того, что было Печать и Ввод, на self.label1 = Label (text = 'Hello world') и т. Д. (Естьнесколько переменных - label2, 3 и 4.), а затем для ввода - текстовое поле, в котором ввод используется функцией при нажатии кнопки (в настоящее время текстовое поле не задействовано, так как я сначала просто проверяю,кнопка работает.).Проблема в том, что мне нужен способ обновить отображаемый текст новым значением.Например, я хотел бы, чтобы label1 изменился на «Это элементы управления».Но когда кнопка нажата, изменений не происходит - я бы хотел, чтобы графический интерфейс обновлялся с новым текстом, путем изменения значений переменных метки.Я считаю, что, поскольку они возвращаются, приведенный выше код больше не перебирает.Идея, которую мне дали, состоит в том, чтобы поместить различные разделы в функции или использовать многопоточность.У кого-нибудь есть советы, чтобы подтолкнуть меня в правильном направлении.Я понимаю, что это может быть слишком много, чтобы спросить, если так, я буду продолжать искать решение самостоятельно.Я могу показать часть кода при необходимости.
import kivy.uix.boxlayout
import kivy.uix.textinput
import kivy.uix.label
import kivy.uix.button
from kivy.app import App
from random import shuffle
import time
from kivy.uix.button import Button
from kivy.clock import Clock
alive = 1
buttonPressed = 0
class SimpleApp(App):
def build(self):
global alive
global buttonPressed
donext = 0
alive = 1
def callback(self):
global buttonPressed
buttonPressed = 1
self.label1 = kivy.uix.label.Label(text="")
self.label2 = kivy.uix.label.Label(text="")
self.label3 = kivy.uix.label.Label(text="You have found yourself in a dungeon, somewhere is your escape path, will you make it out, and if so, what with?")
self.label4 = kivy.uix.label.Label(text="")
print(buttonPressed)
if buttonPressed == 1:
print("Has been pressed should work theoretically")
self.label1 = kivy.uix.label.Label(text="These are the basic controls-")
self.label2 = kivy.uix.label.Label(text="The controls-")
self.label3 = kivy.uix.label.Label(text="A- approach enemy/ attack enemy")
self.label4 = kivy.uix.label.Label(text="C- Go to chest")
print("Press enter to continue.")
self.boxLayout = kivy.uix.boxlayout.BoxLayout(orientation="vertical")
self.boxLayout.add_widget(self.label1)
self.boxLayout.add_widget(self.label2)
self.boxLayout.add_widget(self.label3)
self.boxLayout.add_widget(self.label4)
self.btn1 = Button(text='Hello world 1', on_press=callback)
self.boxLayout.add_widget(self.btn1)
return self.boxLayout # Causes script not to continue
if __name__ == "__main__":
simple = SimpleApp()
simple.run()