0
我正在寫一個tkinter程序,我試圖在ui上更新我的標籤。但是我無法讓它工作。下面的代碼:在python tkinter中不更新的標籤
from tkinter import *
import random, functools, string
root = Tk()
word_list = ["APPLE", "PEAR", "BANNANA"]
word = word_list [random.randint(0,2)]
hidden_word = ["_ "] * len(word)
print (word)
abc = ['_ '] * len(word)
guessed_letters = []
#Functions
def click_1 (key):
if key in word:
guessed_letters = ''.join([key])
global abc
abc = ''.join([key if key in guessed_letters else "_" for key in word])
else:
print ("Nope") ####TESTING#####
#Frames
hangman_frame = Frame(root)
hangman_frame.grid(row=0, column=0, sticky=N)
letter_frame = Frame(root)
letter_frame.grid(row=1, column=0, sticky=S)
#Label
letters_label = Label(hangman_frame, textvariable=abc)
letters_label.grid(row=0, column=0, sticky=W)
(只是節選,不是所有的)
我的問題是,跑的時候,這部分好像不工作:
letters_label = Label(hangman_frame, textvariable=abc)
其中:
abc = ['_ '] * len(word)
guessed_letters = []
#Functions
def click_1 (key):
if key in word:
guessed_letters = ''.join([key])
global abc
abc = ''.join([key if key in guessed_letters else "_" for key in word])
而沒有顯示出來,而當這是:
letters_label = Label(hangman_frame, text=abc)
標籤出現,但在函數click_1被調用時不會更新。
這是什麼原因?提前致謝。
,完美的作品_almost_ - 它不保留更改,即。當我按'a'時,它會更改爲'a',但是當我按'b'時,它只輸出'b'並刪除'a'。任何方式來解決這個問題? – 18166
你能否回答我的問題,因爲這讓我很沮喪。 – 18166
在顯示它之前重新定義'abc'時,您必須將'a'替換爲'b',而不是將'b'加入'a'。 –