我正在尝试创建一个Label
with 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