非常基本的python GUI程序帮助

时间:2011-03-04 14:32:34

标签: python user-interface

所以我正在研究一个非常基本的程序,其中随机选择三个“门”中的一个。将该选择与用户的选择进行比较,如果用户的选择与随机选择的选择相同,则用户获胜。

基本上,我想根据用户是否正确重新设置GUI中的文本。我正在使用的图形库中有一个“setText”方法(随教科书一起提供)应该可以解决这个问题,但由于某些原因我不断收到此错误:

label.setText("Congrats! You got it!")
AttributeError: 'NoneType' object has no attribute 'setText'

但我确定setText是文本类的一种方法!

user_select = win.getMouse()

for i in range(n):

    selection = door_list[randrange(0,3)]
    user_select = win.getMouse()
    label = Text(Point(5,9), "hello").draw(win)

    if selection.clicked(user_select):
        label.setText("Congrats! You got it!")
        wins = wins + 1

    elif not selection.clicked(user_select):
        label.setText("Sorry, try again")
        losses = losses + 1

print(wins, losses)

2 个答案:

答案 0 :(得分:2)

我不知道这是否是一个完整的解决方案,但你需要替换它:

label = Text(Point(5,9), "hello").draw(win)

用这个:

label = Text(Point(5,9), "hello")
label.draw(win)

在您的版本中,Text对象已创建并绘制,但它是draw函数的返回值,该值已分配给label(可能是draw返回None)。

答案 1 :(得分:0)

我不知道你的教科书或API,我猜想draw的{​​{1}}方法不会返回Text,所以你需要把它分成两行:

Text