我正在嘗試使用ttk
創建一個Label
。如何使用Python創建textevariable標籤(ttk)
我的目標是創建一個小部件,其中一個單詞的點將出現。 我創建了一個條目,我想顯示該單詞值得的點。
這裏是我的代碼:
這是創建功能Label
:
def create_variabletext_label2(root, col, row, val):
val1 = IntVar()
val1.set(m.comptabilisation_points(val.get()))
# Here val is the value of the word input onto the entry widget
# and m.comptabilisation_point() is a function that counts the
# points of the word.
label = Label(root, textvariable=val1)
label.grid(column=col, row=row)
return val1, label
下面是函數創建條目:
def create_entry_string(root, width, col, row, columnspan, rowspan):
val=StringVar()
entry=ttk.Entry(root, width=width, textvariable=val)
entry.grid(column=col, row=row, columnspan=columnspan, rowspan=rowspan)
return val, entry
然後我把這些功能:
val_entry_mot, entry_mot = create_entry_string(root, 15, 1, 1, 1, 1)
val_points, label_points = create_variabletext_label2(root, 1, 2, val_entry_mot)
我的問題是Label
一直顯示0
。 標籤不會根據單詞的要點而改變。
感謝您的幫助。 MFF
對不起,模糊不清。
其他信息:
我正在嘗試創建拼字遊戲遊戲。其實,我的問題是我不知道如何顯示這個詞的價值。即使條目的值發生更改,標籤也不會更改。
起初我以爲val_entry_mot
的價值沒有改變。於是,我就只顯示通過這一改變功能create_variable_text2()
輸入單詞:
def create_variabletext_label2(root, col, row, val):
label = Label(root, textvariable=val)
label.grid(column=col, row=row)
return val, label
它的工作。每次我在條目中更改單詞時,標籤都會顯示該單詞。
然後,我認爲應該計算單詞點的代碼是有缺陷的。那就是:
def comptabilisation_points(word):
dico_values=values_scrabble()
points=0
for i in word.upper():
points+=dico_values[i]
return points
values_scrabble()
是打開一個文件,並將其轉換成字典的功能= {'A': 1, 'C': 3, 'B': 3, 'E': 1, 'D': 2, 'G': 2, 'F': 4, 'I': 1, 'H': 4, 'K': 10, 'J': 8, 'M': 2, 'L': 1, 'O': 1, 'N': 1, 'Q': 8, 'P': 3, 'S': 1, 'R': 1, 'U': 1, 'T': 1, 'W': 10, 'V': 4, 'Y': 10, 'X': 10, 'Z': 10}
當我試圖計算一個字的點,它實際工作。所以我想我的問題不在這裏。
這裏是遊戲的屏幕截圖。它是法文的,但你必須知道的是,頂部的第一個Entry
是你輸入單詞的位置,正下方應該顯示單詞的點。
我希望我已經清楚了。謝謝。
MFF
什麼是'm.comptabilisation_points(val.get())'該怎麼辦? – cfedermann 2012-04-16 12:11:30
好吧,它根據字典來計算單詞的點數,例如:{'A':1,'E':2,'K':10,...} – 2012-04-16 12:21:17
無論如何,作爲'val.get()'只是返回一個空字符串(因爲它被初始化爲空字符串),所以你不能指望'val1.set()'有意義的輸出。 – cfedermann 2012-04-16 12:23:14