我使用Python和tkinter
来创建GUI。我创建了两个类,App
和drawBall
。App
类继承自Tk.Frame
。在App
中创建drawBall
对象时遇到问题
我也很感激关于我的代码的任何其他反馈,我对OOP还相当陌生
创建从Tk.Frame继承的类App
之后。我想创建另一个类在屏幕上绘制一个球(使用画布)。我已经创建了一个基本GUI,但是在尝试调用类drabull时,我收到以下错误:“drabull”对象没有属性“canvas”
class App(tk.Frame):
def __init__(self,master):
super().__init__(master)
#create title and size for the window
self.master.geometry("640x360")
self.canvas = tk.Canvas(self.master,relief = 'raised',borderwidth = 1)
self.canvas.grid(row = 0,column = 0,sticky = 'NW')
#create a startSimulation button, place it in the bottom right corner
self.startButton = tk.Button(self.master,text = 'Start',command = self.startCallback)
self.startButton.grid(row = 2,column = 3)
#create a quit button, place it in the bottom right corner
self.quitButton = tk.Button(self.master,text = "Quit",command = self.master.destroy)
self.quitButton.grid(row = 3, column =3)
#callback for start button click
def startCallback(self):
#### this is where the error occurs #####
self.ball1 = drawBall(self.master,self.canvas)
class drawBall():
def __init__(self,master,canvas):
self.canvas.create_oval(25,75,35,85,fill = 'blue')
def moveBall(self):
deltaX = 1
self.canvas.move(self.seed,deltaX,0)
self.canvas.after(50,self.moveBall)
if __name__ == '__main__':
window = tk.Tk()
simulate = App(window)
window.mainloop()
我希望调用“self.ball1=trabill(self.master,self.canvas)”会导致在屏幕上绘制圆
你需要一个类
Ball
,它需要一个canvas
,并且有能力移动自己。然后,在
App
中,创建一个球的集合,并命令它们移动像这样:
相关问题 更多 >
编程相关推荐