간단한 퀴즈 프로그램을 만들려고합니다. 10 가지 질문 범위의 모든 질문에 대해 텍스트를 변경하도록 라벨을 지정합니다. 따라서 1 번 질문에 '1 번 질문'이라고 표시됩니다. 하지만 즉시 '질문 10'이 표시되며 퀴즈를 칠 수 없습니다.루프 내 tkinter 레이블 텍스트를 계속 변경할 수 없습니다.
사전에는 단 하나의 질문 만 있지만 문제가 아니어야하며 그 질문을 10 번 반복해야합니다.
여기 내 코드의 조각입니다 (이 클래스의) :
self.label = tk.Label(self, text="This is page 1")
self.label.pack(side="top", fill="x", pady=10)
self.label1 = tk.Label(self, text='')
self.label1.pack()
self.label2 = tk.Label(self, text='')
self.label2.pack()
self.entry1 = tk.Entry(self)
self.entry1.pack()
self.label3 = tk.Label(self, text='')
self.label3.pack()
self.entry2 = tk.Entry(self)
self.entry2.pack()
my_dict = {
"Base-2 number system": "binary",
}
score = 0
for i in range(10):
question = (random.choice(list(my_dict.keys())))
answer = my_dict[question]
self.label1.config(text=("Question " + str(i + 1)))
self.label2.config(text=(question + "?"))
guess = self.entry1.get()
if guess.lower() == answer.lower():
score += 1
else:
score += 0
self.label3.config(text=("Your final score was " + str(score)))
사용자가 입력 위젯에 응답을 입력 할 때까지 기다려야합니다. 귀하의 코드는 그렇게하지 않습니다. BTW, 당신의 코드가 우리가 실행하고 수정할 수있는 [mcve]라면 당신을 도울 것입니다. –
은'Label' 대신'Button'을 사용할 수 있습니다. 사용자가 버튼을 클릭하면 버튼의 텍스트가 변경됩니다. Button (..., command = function_name)을 사용하여 버튼에 기능을 할당 할 수 있습니다. – furas