【发布时间】:2018-12-18 04:20:39
【问题描述】:
我正试图弄清楚如何利用我在大学中学到的 Java 知识,在 python 中制作可管理的面向对象应用程序。
我的程序目录中有 2 个 python 文件,app.py 作为驱动程序,canvas.py 用于为程序创建 Tkinter GUI。这是一个相当简单的 GUI,只有 2 个按钮,我希望一个按钮关闭程序,一个按钮使用 app.py 中的 getCommand() 方法。问题是当我在 app.py 中创建我的画布对象时,我得到了错误方法:
TypeError: 'module' object is not callable
canvas.py 中的代码如下: 将 tkinter 导入为 tk
class canvas:
def __init__():
root =tk.Tk()
root.geometry("400x400")
frame = tk.Frame(self)
tk.Button(frame, text="Speak", command=getCommand).pack(side=tk.LEFT)
tk.Button(frame, text="Quit", command=quit).pack(side=tk.LEFT)
frame.pack()
在 app.py 中我用
创建了对象root = canvas()
root.mainloop()
感谢任何关于我应该做什么的提示和答案!
【问题讨论】:
-
你可能需要
canvas.canvas(),因为canvas既是模块的名称,也是模块内部类的名称。 -
将
tk.Tk移动到class canvas(tk.Tk):。将root =tk.Tk()更改为super().__init__()并将root.geometry(...更改为self.geometry(。
标签: python python-3.x user-interface tkinter