あなたが正しく理解している場合は、一度に1文字ずつゆっくりと表示するラベルを作成する必要があります(最初に「s」、次に「st」、「str」などが表示されます)。
カスタムラベルクラスを作成し、after
を使用すると、テキストをゆっくりと表示できます。関数reveal_text
が呼び出されるたびに、残りの文字のリストから1つの文字がポップされ、すでに表示されている文字に追加された後、0.5秒後に再び呼び出されるようにアレンジされます。例えば
:
class SlowLabel(tk.Label):
def __init__(self, *args, **kwargs):
tk.Label.__init__(self, *args, **kwargs)
self.text = self.cget("text")
self.configure(text="")
self.reveal_text()
def reveal_text(self):
if len(self.text) > 0:
text = self.cget("text") + self.text[0]
self.configure(text=text)
self.text = self.text[1:]
self.after(500, self.reveal_text)
あなたは通常のラベル使用するまさにあなたのようなこのクラスを使用することができます:あなたは、ボタンではなく、ラベルを好む場合は、単にtk.Button
ではなくtk.Label
から継承
import tkinter as tk
root = tk.Tk()
for text in ("string1", "string2", "string3"):
label = SlowLabel(root, text=text, width=20, anchor="w")
label.pack(side="top", fill="x")
を。
「ゆっくりと印刷する」とはどういう意味ですか?あなたは、各文字の間に遅延を持って一度に1文字を表示して文字列を表示する方法を尋ねていますか? –
サンプルコード(または既に持っているコード)と、可能であれば、あなたが望むもののイメージを追加できますか? –