で作成しようとしてLabel
います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