Я думаю, что лучше использовать label.config (text = "TEXT") во время итерации, как я это делал в своем коде.
Я бы посоветовал использовать больше self.variables для подключения их к каждой функции.
Вот код:
from tkinter import *
import time
class gui:
def __init__(self, master):
self.master = master
self.master.geometry("365x100")
self.master.title("VisualNovelPrototype")
self.str1 = StringVar()
self.str1.set("Welcome to the game")
self.label = Label(self.master, text=self.str1.get())
self.label.grid(row=0,column=1)
self.button0 = Button(self.master, text="yes", command=self.start)
self.button0.place(x=180,y=40)
self.button1 = Button(self.master, text="no", command=self.master.destroy)
self.button1.place(x=180,y=70)
def label_change(self, text):
def process():
self.store += text[self.index]
self.index += 1
self.label.config(text=self.store)
self.master.update()
self.label_change(self.txt)
if self.store!=text:
time.sleep(0.100)
process()
else:
pass
def button_change(self, master, text0="", command0="", text1="", command1=""):
self.button0.config(text=text0, command=command0)
self.button1.config(text=text1, command=command1)
def start(self):
self.store=""
self.index=0
self.txt="Its a cold night. A storm rages outside. You hear a knock at the door."
self.label_change(self.txt)
window=Tk()
et=gui(window)
Когда вы нажали yes, запускается эта функция, которая инициализирует self.index и self.txt для индексации строки, а другая - для хранения строки соответственно.
Затем он переходит к функции label_change с параметром self.txt.
def start(self):
self.store=""
self.index=0
self.txt="Its a cold night. A storm rages outside. You hear a knock at the door."
self.label_change(self.txt)
Функция label_change будет повторяться до тех пор, пока self.store не станет таким же, как self.txt.
if self.store!=text:
time.sleep(0.100)
process()
else:
pass
Затем он вызовет функцию процесса, чтобы добавить один символ в переменную self.store и увеличить self.index на 1. Наконец, он обновит self.master (окно GUI).
def process():
self.store += text[self.index]
self.index += 1
self.label.config(text=self.store)
self.master.update()
self.label_change(self.txt)
Это мой первый ответ, поэтому, если возникнут какие-либо проблемы, я готов помочь.
Ciao!