这可能真的很琐碎。
我遇到以下错误。
"self.d = {'Roosevelt Bridge': {"Monday": final()}}
TypeError: final() missing 1 required positional argument: 'self'"
如果我跳过字典,其他所有内容都可以正常工作而不会出错。我不知道如何将字典类型对象添加到tkinter中。
感谢您的澄清。
import tkinter as tk
def main():
root = tk.Tk()
root.title("class basic window")
root.geometry("250x350")
root.config(background="LightBlue4")
app = Application(root)
root.mainloop()
class Application(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent, bg="ivory2", bd=2,
relief=tk.RAISED)
self.parent = parent
self.pack(fill=tk.BOTH, expand=1)
self.initUI()
def initUI(self):
self.grid()
self.optionList=["", "repair", "boat crossing", "mechinical
issue", "accident"]
self.dropVar=tk.StringVar()
self.dropVar.set(self.optionList[0])
self.dropMenu=tk.OptionMenu(self, self.dropVar,
*self.optionList)
self.dropMenu.config(width=10)
self.dropMenu.pack()
self.get=tk.Button(self, text="update", command=self.final)
self.get.pack()
#self.pack(fill=t.BOTH, expand=1)
def final(self):
if self.dropVar.get()==self.optionList[0]:
return ("1")
else:
return ("0")
self.d = {'Roosevelt Bridge': {"Monday": final()}}
print (self.d)
if __name__ == '__main__':
main()
答案 0 :(得分:0)
这是一个非常的简单答案,您所要做的就是将错误所在的行更改为
self.d = {'Roosevelt Bridge': {"Monday": final(self)}}
除了说final()
我将其更改为final(self)
之外,事实还是一样!
希望这会有所帮助!
答案 1 :(得分:0)
我知道了。原来我对变量d的范围和函数final感到困惑。这是按我想要的方式工作的代码。感谢您的提问和我的学习贡献。
import tkinter as tk
D = {'罗斯福桥':{“星期一”:1}}
def main():
root = tk.Tk()
root.title("class basic window")
root.geometry("250x350")
root.config(background="LightBlue4")
app = Application(root)
root.mainloop()
类应用程序(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent, bg="ivory2", bd=2, relief=tk.RAISED)
self.parent = parent
self.pack(fill=tk.BOTH, expand=1)
self.initUI()
def initUI(self):
self.grid()
self.optionList=["", "repair", "boat crossing", "mechinical issue", "accident"]
self.dropVar=tk.StringVar()
self.dropVar.set(self.optionList[0])
self.dropMenu=tk.OptionMenu(self, self.dropVar, *self.optionList)
self.dropMenu.config(width=10)
self.dropMenu.pack()
self.get=tk.Button(self, text="update", command=self.update)
self.get.pack()
#self.pack(fill=t.BOTH, expand=1)
def final(self):
if self.dropVar.get()==self.optionList[0]:
return ("1")
else:
return ("0")
def update(self):
global D
D = {'Roosevelt Bridge': {"Monday": self.final()}}
print (D)
如果名称 =='主要”: main()