python - 我的代码中的错误我不知道出了什么问题。特金特
问题描述
我的代码中有这个错误,我已经在网上搜索了答案,但不知道如何修复。当我的代码只有 165 行时,不知道为什么会出现 2000+ 行错误?
这是错误:
回溯(最后一次调用):文件“/Applications/Wing101.app/Contents/Resources/src/debug/tserver/_sandbox.py”,第 156 行,在文件“/Applications/Wing101.app/Contents/Resources/src”中/debug/tserver/_sandbox.py",第 80 行,在init 文件 "/Applications/Wing101.app/Contents/Resources/src/debug/tserver/_sandbox.py",第 38 行,在init 文件 "/System/Library /Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py”,第 2591 行,在init 小部件中。init (self, master, 'label', cnf, kw) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py”,第 2090 行,在在里面 (widgetName, self._w) + extra + self._options(cnf)) _tkinter.TclError: 未知选项“-container”
任何人都可以对发生的事情有所了解吗?
编辑1:(这是我的代码)
from Tkinter import *
from Tkinter import Menu
import Tkinter as tk
import tkFont as tkfont
import os
class master(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
def show(self):
self.lift()
class DisplayPage(master):
def __init__(self, *args, **kwargs):
master.__init__(self, *args, **kwargs)
# create all of the main containers
frame_F = Frame(self, width=930, height=780)
frame_G = Frame(self, width=465, height=170)
frame_H = Frame(self, width=465, height=170)
frame_I = Frame(self, width=465, height=170)
frame_J = Frame(self, width=465, height=170)
frame_K = Frame(self, width=465, height=85)
# layout all of the main containers
frame_F.grid(row=0, column=0, columnspan=2, rowspan=4)
frame_G.grid(row=0, column=3)
frame_H.grid(row=1, column=3)
frame_I.grid(row=2, column=3)
frame_J.grid(row=3, column=3)
frame_K.grid(row=4, column=3)
# create widget 1
contentA = Frame(self, frame_G)
namelbl5 = Label(self, contentA, text='Chosen Destination:', font =('Roboto Thin', 30), )
# create widget 2
contentB = Frame(self, frame_H)
namelbl6 = Label(self, contentB, text='Distance From Destination:', font =('Roboto Thin', 30), )
# create widget 3
contentC = Frame(self, frame_I)
namelbl7 = Label(self, contentC, text='Available Parking Spaces:', font=('Roboto Thin', 30), )
# create widget 4
contentD = Frame(self, frame_J)
namelbl8 = Label(self, contentD, text='Price Per Hour:', font =('Roboto Thin', 30), )
# next ok button
contentE= Frame(self, frame_K)
back = Button(self, contentE, text='Back', font =('Roboto Thin', 30))
back.pack()
# layout all widgets
contentA.grid(column=0, row=0)
contentB.grid(column=3, row=1)
contentC.grid(column=3, row=2)
contentD.grid(column=3, row=3)
contentE.grid(column=3, row=4)
namelbl5.grid(column=3, row=1)
namelbl6.grid(column=3, row=3)
namelbl7.grid(column=3, row=5)
namelbl8.grid(column=3, row=7)
back.grid(column=3, row=9)
class MainPage(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
p1 = DisplayPage(self)
# create all of the main containers
frame_A = Frame(self, width=930, height=780)
frame_B = Frame(self, width=465, height=280)
frame_C = Frame(self, width=465, height=280)
frame_D = Frame(self, width=465, height=140)
frame_E = Frame(self, width=465, height=70)
# layout all of the main containers
frame_A.grid(row=0, column=0, columnspan=2, rowspan=3)
frame_B.grid(row=0, column=3)
frame_C.grid(row=1, column=3)
frame_D.grid(row=2, column=3)
frame_E.grid(row=3, column=3)
# create widget 1
content1 = Frame(self, frame_B)
onevar = BooleanVar()
twovar = BooleanVar()
threevar = BooleanVar()
onevar.set(False)
twovar.set(False)
threevar.set(False)
namelbl = Label(self, content1, text='Filter System', font =('Roboto Thin', 30), )
one = Checkbutton(self, content1, text='Closest', font =('Roboto Thin', 30), variable=onevar, onvalue=True)
two = Checkbutton(self, content1, text='Cheapest', font =('Roboto Thin', 30), variable=twovar, onvalue=True)
three = Checkbutton(self, content1, text='Most Available Space', font =('Roboto Thin', 30), variable=threevar, onvalue=True)
# create widget 2
content2 = Frame(self, frame_C)
namelbl2 = Label(self, content2, text='Starting Location', font =('Roboto Thin', 30), )
name = Entry(self, content2)
namelbl3 = Label(self, content2, text='Destination', font=('Roboto Thin', 30), )
name2 = Entry(self, content2)
# create widget 3
content3 = Frame(self, frame_D)
namelbl4 = Label(self, content3, text='Chosen Car Park', font =('Roboto Thin', 30), )
name3 = Entry(self, content3)
# next ok button
content4= Frame(self, frame_E)
ok = tk.Button(self, content4, text="Locate",command=p1.lift)
ok.pack()
# layout all widgets
content1.grid(column=0, row=0)
content2.grid(column=3, row=1)
content3.grid(column=3, row=2)
content4.grid(column=3, row=3)
namelbl.grid(column=3, row=1)
name.grid(column=3, row=6)
namelbl2.grid(column=3, row=5)
name2.grid(column=3, row=8)
namelbl3.grid(column=3, row=7)
name3.grid(column=3, row=10)
one.grid(column=3, row=2)
two.grid(column=3, row=3)
three.grid(column=3, row=4)
ok.grid(column=3, row=11)
namelbl4.grid(column=3, row=9)
if __name__ == "__main__":
root = tk.Tk()
main = MainPage(root)
main.pack(side="top", fill="both", expand=True)
menu = Menu(root)
root.config(menu=menu)
root.wm_title('MobilePark Simulator')
root.wm_geometry("1300x830")
new_item = Menu(menu)
new_item.add_command(label='Save')
menu.add_cascade(label='File', menu=new_item)
root.mainloop()
解决方案
那么,具有大行号的段是:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py",
line 2090, in init (widgetName, self._w) + extra + self._options(cnf)) _tkinter.TclError:
unknown option "-container"
这意味着它抱怨的不是你的代码,而是Tkinter
代码本身的调用堆栈中的某些东西。
话虽如此,这通常是因为您在代码中做错了一些事情,例如传递了无效的参数或类似的事情。
我不确定这里的情况是否如此,因为整个调用堆栈似乎由不属于您的代码组成。这意味着它可能是 和 之间的不_sandbox.py
兼容Tkinter
。
鉴于沙箱似乎属于Wing101
(一个 IDE,因此很可能是一个沙箱,用于在 IDE下运行时包含应用程序),我要做的第一件事就是通过尝试运行您的代码来排除这个等式直接从命令行。如果它在那里工作,几乎可以肯定你的 IDE 设置有问题。如果不是,那么您的代码正在执行的操作有问题。
我自己这样做并看到错误仍然存在,我不得不问您要如何处理以下内容:
# create widget 1
contentA = Frame(self, frame_G)
namelbl5 = Label(self, contentA, text='Chosen Destination:', font =('Roboto Thin',30), )
具体来说,contentA
标签构造函数中的存在似乎是将配置设置为一个大字典,其中包含大量不适合小部件的键:
{'bd': 0, 'bg': '#d9d9d9', 'container': 0, 'colormap': '', 'text': 'Chosen Destination:', 'font': ('Roboto Thin', 30), 'height': 170, 'cursor': '', 'width': 465, 'visual': '', 'highlightcolor': '#000000', 'relief': 'flat', 'background': '#d9d9d9', 'padx': <pixel object at 0x1d1ac40>, 'pady': <pixel object at 0x1d1ac70>, 'highlightthickness': 0, 'highlightbackground': '#d9d9d9', 'class': 'Frame', 'takefocus': '0', 'borderwidth': 0}
我会说(乍一看)你在构造函数中似乎有太多的父母。换句话说,要么self
或contentX
应该是父级,例如:
namelbl5 = Label(contentA, text='Chosen Destination:', font =('Roboto Thin',30), )
现在,无论这是否是您的实际意图,我都无法确定,但我可以保证删除一个或另一个可以解决您的直接问题。
我的建议是尽量简化控件的层次结构。当我怀疑您可以摆脱主框架和单个布局管理器时,您在那里有三层或四层。
推荐阅读
- php - 跨 $_POST 请求传递变量值
- mysql - 使用 laravel 创建外键会报错:无法添加外键约束
- ios - 我想生成仅由自己的 QRScanner 应用程序读取的加密 QR 码
- regex - 如何在正则表达式中创建捕获组?
- view - Presto 中关于 Redshift 视图的聚合查询失败并出现错误 org.postgresql.util.PSQLException: ERROR: transaction is read-only
- android - 如何在使用 Android Q 的 Android 模拟器上运行颤振应用程序时修复“HttpException”错误?
- dart - showBottomSheet 脚手架问题与上下文
- android - 如何在flutter中实现多级回调?
- xml - 官方 XSD 架构无效
- xml - 如何使用 XPath 获取整个 min 属性?