简介: Python tkinter库之Canvas按键事件移动物体 (模拟推箱子小游戏) Canvas上的物体用 bind_all(键值,事件函数(event)) 绑定后,就可用move(物体的id,横向移动坐标,纵向移动坐标) 来移动物体了。以下代码模拟了推箱子小游戏中箱子移动的动作,仅限制了边界暂没有添加其它箱子和砖墙等障碍物: import tkinter as tk...
from tkinterimport*tk=Tk()canvas=Canvas(tk,width=400,height=400)canvas.pack()canvas.create_polygon(10,10,10,60,50,35)defmovetriangle(event):canvas.move(1,5,0)canvas.bind_all('<KeyPress-Return>',movetringle)##让tkinter监视KeyPress事件,当该事件发生时调用movetriangle函数 那么我们如何根据按键...
canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) scrollbar = tk.Scrollbar(root, command=canvas.yview) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) canvas.configure(yscrollcommand=scrollbar.set) canvas.bind_all("<MouseWheel>", on_mousewheel) frame = tk.Frame(canvas) canvas.create...
现在我们用画布canvas上的bind_all函数来告诉tkinter当特定事件发生时应该调用这个函数。代码如下: fromtkinterimport*tk=Tk() canvas= Canvas(tk,width=400,height=400) canvas.pack() canvas.create_polygon(10,10,10,60,50,35)defmovetriangle(event): canvas.move(1,5,0) canvas.bind_all('<KeyPress-Retu...
self.canvas.bind_all('<KeyPress-Right>',self.turn_right) def draw(self): self.canvas.move(self.id,self.x,0) pos = self.canvas.coords(self.id) if pos[0] <= 0: self.x = 0 elif pos[2] >= self.canvas_width: self.x = 0 ...
(1,-5,0) elif event.keysym == "Right": canvas.move(1,5,0) canvas.create_rectangle(180,180,220,220,fill="red") canvas.bind_all("",moverectangle) canvas.bind_all("",moverectangle) canvas.bind_all("",moverectangle) canvas.bind_all("",moverectangle) if __name__ == '__main__...
挡板的移动通过键盘事件来控制,通过self.canvas.bind_all方法来绑定键盘事件 当停止按键时,挡板就会停止移动 总结 打砖块游戏是一个经典的游戏,通过这个项目,我们学习了如何使用Python的tkinter库实现一个游戏 tkinter是虽然很丑,但是好用哈哈哈哈 之所以不选择pygame, 是因为小游戏对性能要求很低,要选择学习门槛比较低...
self.canvas.winfo_width()#将画布的宽度放入canvas_width对象self.canvas.bind_all('<KeyPress-Left>',self.turn_left)#用bind_all()函数绑定键盘左键与tun_left函数self.canvas.bind_all('<KeyPress-Right>',self.turn_right)#绑定键盘右键与turn_right函数defdraw(self):#声明一个draw函数self.canvas....
2.Canvas 画布。提供绘图功能(直线、椭圆、多边形、矩形) 可以包含图形或位图 3.Checkbutton 选择按钮。一组方框,可以选择其中的任意个(类似HTML 中的checkbox) 4.Entry 文本框。单行文字域,用来收集键盘输入(类似HTML中的text) 5.Frame 框架。包含其他组件的纯容器 ...
8、组图组件Canvas控制参数 绘图的方法主要以下几种: 对于按钮组件、菜单组件等可以在创建组件时通过command参数指定其事件处理函数。方法为bind;或者用bind_class方法进行类绑定,bind_all方法将所有组件事件绑定到事件响应函数上。 9、菜单Menu 参数: 12、弹窗 ...