我已经在Tkinter StringVar error中看到并尝试了答案,但是它仍然没有解决任何问题,我正在制作一个基于文本的rpg(我知道python并不是最适合游戏的,而且它可能不方便),我正在尝试制作一个if语句来保持语法正确。这是目前为止的代码
import tkinter as tk
import random
from tkinter import*
class Nirvana:
def __init__(self, master):
self.master = master
master.title("Nirvana")
happen = StringVar()
self.event = Message(master, textvariable= happen)
self.event.grid(row=0)
self.b1 = Button(master, text= "Continue", command= self.go)
self.b1.grid(row=1)
encounter = StringVar()
enc = encounter.get()
hap = happen.get()
def go(self):
encounter.set(random.choice(hostiles1 + hostiles2))
if (enc[0]) is "a" or "e" or "i" or "o" or "u":
happen.set("You have encountered an", enc)
else:
happen.set("You have encountered a", enc)
d = ("dragon")
w = ("wolf")
o = ("ogre")
hostiles1 = [d, w]
hostiles2 = [o]
root = Tk()
root.geometry("500x500")
my_gui = Nirvana(root)
root.mainloop()
这是错误
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1702, in __call__
return self.func(*args)
File "Tbr.py", line 22, in go
encounter.set(random.choice(hostiles1 + hostiles2))
NameError: name 'encounter' is not defined
您需要将StringVar对象指定给属性:
相关问题 更多 >
编程相关推荐