我想用Python創建一個Scrabble遊戲。我想在用戶輸入單詞時顯示該單詞的價值。 我已經問過這個問題,因爲我不知道使用什麼方法。當我發現使用哪種方法時,我的問題是如何使用這種方法,我認爲這有一個新問題。 我的問題是我創建了一個名爲bind_entry(event)
的函數,應該在用戶每次輸入一個字母時設置一個標籤。但函數bind_entry(event)
不知道要設置的標籤和單詞所在的條目。Python 2.7:Tkinter,如何使用綁定方法?
這裏是我的代碼:
#this the function creating the label
def create_variabletext_intlabel(root,col,row):
val=IntVar()
label=Label(root,textvariable=val)
label.grid(column=col,row=row)
return val, label
#this is the function creating the entry
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)
entry.bind("<Any-KeyPress>",bind_entry)
#Here is my problem, when I call the function bind_entry.
return val, entry
def bind_entry(event):
label.set(m.counting_point(char(event)))
# m.counting_point() is a function counting the word's points
# my problem is that the function doesn't know yet the label.
# I don't know how to call the label.
# I call the function create_entry_string in another file initiating
# all the widget for the GUI
val_entry_word, entry_word =g.create_entry_string(root,15,1,1,1,1)
# I call the function create_variabletext_intlabel in another file
# initiating all the widget for the GUI
val_points,label_points=g.create_variabletext_intlabel(root,1,2)
我只注意到功能m.counting_points()
只會計算由用戶鍵入的字母。在這裏我應該打電話給val_entry_word
。
因此,這裏是我的問題:
由於val_entry_word
和val_points
在函數創建在另一個文件中我怎麼能調用的函數bind_entry()
val_entry_word
和val_points
?
我不太明白'bind'中的'm'是什麼。此外,'counting_point'採取了哪些輸入 - 邏輯猜測是一個字符串,但不清楚你正在做什麼......例如,什麼是'char'。據我所知,這不是一個蟒蛇內置... – mgilson 2012-04-23 12:21:12