所以我正在研究一个非常基本的程序,其中随机选择三个“门”中的一个。将该选择与用户的选择进行比较,如果用户的选择与随机选择的选择相同,则用户获胜。
基本上,我想根据用户是否正确重新设置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)
答案 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