我正在尝试创建一个类来构建labelframe,其中labelwidget选项是一个条目小部件。 Widget类与调用脚本位于不同的文件中。
我在尝试将条目小部件与labelframe的labelewidget选项相关联时收到错误。
这是错误消息:
_tkinter.TclError: bad window path name "<RtMaintWidgets.Entry object at 0x0000000003768080>"
这是调用脚本的代码:
# Create the frame
# self.FSrootF = rt.Frame.crt(self.FSwindow)
self.FSrootF = tk.Frame(self.FSwindow)
self.FSrootF.grid(sticky='nsew')
# Create the widgets
self.FScrtInfo()
def FScrtInfo(self):
"""
"""
# Create the label frame
# " User Information:"
# "rasterToolGUI allows you to adjust \\n
# spot elevations in X_Plane scenery.\\n
# Select the file on which to work,\\n
# select the options and let the magic begin."
self.FSinfoLf = rt.LabelFrame(self.FSrootF,
self.FSparms['LF001'])
self.FSinfoLf.grid()
..这是小部件脚本中的代码
class Entry(object):
def __init__(self, into, text, justify='left'):
"""
:param into:
:param text:
:param justify:
"""
self.__into = into
self.__text = text
self.__titlewidth = len(self.__text) + 3
self.__justify = justify
self.__entrysvar = tk.StringVar()
self.__entrysvar.set(self.__text)
self.__entry = tk.Entry(self.__into,
width=self.__titlewidth,
textvariable=self.__entrysvar,
justify=self.__justify)
class LabelFrame(object):
" Class documentation"
def __init__(self, into, title, labelanchor='nw', relief='groove'):
"""
:param into:
:param title:
:param labelanchor:
:param relief:
"""
self.__into = into
self.__title = ' ' + title
self.__labelanchor = labelanchor
self.__relief = relief
# Create the lf
self.__lf = tk.LabelFrame(self.__into,
labelanchor=self.__labelanchor,
relief=self.__relief)
# create the entry
self.__entry = Entry(self.__lf,
self.__title)
self.__lf['labelwidget'] = self.__entry < Statement causing the error
我以为我知道自己在做什么,但显然不是。我试过改变“自我”,改变调用的语法,但我无法弄清楚我做错了什么。
在测试中,python指定的名称似乎确实转移到小部件脚本中,所以我看不出实际的错误是什么。
我哪里错了?
答案 0 :(得分:1)
labelwidget
必须设置为实际的小部件。您将其设置为包含小部件但其本身不是小部件的自定义类之一。