2012-06-14 48 views
0

我試圖讓它使我的main()函數調用getWordUser()函數來製作一個按鈕。一旦按下按鈕,將調用Word_and_Username()函數以返回用戶名和單詞。出於某種原因,我無法讓它工作。下面的代碼:python 3.2,tkinter。使用函數和圖形在按下按鈕時返回一個變量

from tkinter import* 
import random 
root = Tk() 
root.title("Hangman") 
root.geometry("200x200") 
username = "" 

def Word_and_Username(): 
    file = open("Hangmanwords.txt","r") 
    randomize = random.randint(1,117) 
    words = file.readlines() 
    line = words[randomize] 
    word = line[:-1] 
    username = root.username.get() 

    return word,username 

def getWordUser(): 
    root.username = Entry() 
    root.username.grid(row=1, column=0) 

    root.theGame = Button(text = "Continue", command=Word_and_Username) 
    root.theGame.grid(row=1, column=1) 

def main(): 
    getWordUser() 
    print (username) 



main() 
root.mainloop() 

基本上,我需要的主要調用的函數,等到繼續按下按鈕和變量返回主同時繼續與主要功能。謝謝。

+0

讓回調函數「返回」在GUI的上下文中沒有意義。你認爲他們會回到哪裏? 你正在創建一個GUI,或者像一個命令行程序,它只是簡單地顯示一個窗口來獲得單個輸入值嗎? –

+0

我想創建一個GUI,它具有一個主函數,它調用用戶名函數以允許用戶輸入用戶名,然後存儲該用戶名函數供以後使用。 – user1402362

+0

所以它遵循這個專欄:https://docs.google.com/document/d/1Vf0OccwvdS9Pd9rjp_3S86_yyTE8WHqqAIkUfS3K_vk/edit# – user1402362

回答

0

通過將值分配給根屬性,可以將值存儲並準備好以非常直接的方式使用。 這是您修改的腳本顯示。按'我所知道的'在shell中查看給定用戶的單詞。

from Tkinter import* 
import random 
root = Tk() 
root.title("Hangman") 
root.geometry("250x200") 
root.word = None 
root.user = None 

def Word_and_Username(): 
    file = open("C:/test/test.csv","r") 
    randomize = random.randint(1,4) 
    words = file.readlines() 
    line = words[randomize] 
    root.word = line[:-1] 
    root.user = root.username.get() 

def getWordUser(): 
    root.username = Entry() 
    root.username.grid(row=1, column=0) 

    root.theGame = Button(text = "Continue", command=Word_and_Username) 
    root.theGame.grid(row=1, column=1) 

    root.ask = Button(text = "What I know", command=ask) 
    root.ask.grid(row=2, column=1) 

def ask(): 
    print 'word is %s for user %s' %(root.word, root.user) 


getWordUser() 
root.mainloop()