gpt4 book ai didi

python - 属性错误 : class Frame has no attribute 'tk'

转载 作者:行者123 更新时间:2023-11-28 22:42:29 24 4
gpt4 key购买 nike

我正在编写自己的库,以便以后可以更快、更轻松地使用某些功能。目前,我正在使用 python 的 GUI 库 Tkinter。 (来自 tkinter include *)

def guiFrameNew(title, width, height):
guitmp = Tk();
return guitmp;

def guiTextboxReadonlyNew(frame, width, text):
guitmp = Entry(Frame, state="readonly", textvariable=text, width=width);
guitmp.pack();
return guitmp;

def guiFrameRun(frame):
frame.mainloop();

这一切都在一个文件 (file_one.py) 中。

在另一个文件 (file_two.py) 中,我包含了这个文件:

include file_one as f

file_two 中的代码是:

main = f.guiFrameNew("Test", 0, 0);
main_tbro = f.guiTextboxReadonlyNew(main, 20, "Some Text");
f.guiFrameRun(main);

是的,我知道我不需要 def guiFrameNew 中的值 Title, width, height,因为该函数不会创建框架。

在我启动 file_two.py 之后,python 解释器说:

> File "file_two", line 5, in <module>
> main_tbro = f.guiTextboxReadonlyNew(main, 20, "Some Text"); File "/Users/MyUsername/Documents/py/file_two.py", line 190, in
> guiTextboxReadonlyNew
> guitmp = Entry(Frame, state="readonly", textvariable=text, width=width); File
> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py",
> line 2447, in __init__
> Widget.__init__(self, master, 'entry', cnf, kw) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py",
> line 2027, in __init__
> BaseWidget._setup(self, master, cnf) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py",
> line 2005, in _setup
> self.tk = master.tk AttributeError: class Frame has no attribute 'tk'

不知道为什么,因为函数def guiTextboxReadonlyNew(...)和函数类似

def guiTextboxNew(frame, width):
guitmp = Entry(frame, width=width);
guitmp.pack();
return guitmp;

def guiTextboxNew(...) 有效!

我的文件有什么问题?

最佳答案

假设include你是说 import (确实如此,因为您可以导入模块 file_one )。

Entry()将框架对象作为第一个参数,而不是 Frame类(class)。你应该做 -

def guiTextboxReadonlyNew(frame, width, text):
guitmp = Entry(frame, state="readonly", textvariable=text, width=width)
guitmp.pack()
return guitmp

此外,实际上并不需要 ; (分号)在 python 语句之后。

关于python - 属性错误 : class Frame has no attribute 'tk' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31683552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com