0

我正在尝试让我的 main() 函数调用 getWordUser() 函数来创建一个按钮。一旦按下按钮,就会调用 Word_and_Username() 函数以返回用户名和单词。出于某种原因,我无法让它工作。这是代码:

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()

基本上,我需要 main 来调用该函数,等到按下继续按钮并将变量返回给 main,同时继续使用 main 函数。谢谢。

4

1 回答 1

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() 
于 2012-06-17T12:42:15.067 回答