1. 框架代码sublime-text
用 PyCharm 新建一个名为 SimplePaintApp 的项目,而后新建一个名为 simple_paint_app.py 的 Python 源文件,app
在代码编辑器中,输入如下框架代码框架
1 from kivy.app import App 2 from kivy.uix.widget import Widget 3 4 5 class MyPaintWidget(Widget): 6 pass 7 8 9 class MyPaintApp(App): 10 def build(self): 11 return MyPaintWidget() 12 13 14 if __name__ == '__main__': 15 MyPaintApp().run()
运行上面的代码,将显示一个黑色背景的窗口编辑器
看起来很没劲的样子,不过你可不要小瞧这几行代码。这些就是简易画板的框架代码,它就像是程序的骨架,后面咪博士将会带领你们在这副骨架上添加各类新功能,逐步丰富和完善应用。ui
第 5 行 class MyPaintWidget(Widget): 从类 Widget 继承,构造咱们的自定义窗口部件 MyPaintWidget。画板的主要逻辑将在 MyPaintWidget 这个类中实现。如今咱们只写了一个 pass (第 6 行),至关因而占位符,先让整段代码跑起来,具体的功能,咱们将在后面的教程中补充。spa
第 12 行 return MyPaintWidget() 在应用初始化时(调用 build 方法)建立并返回自定义窗口部件对象 MyPaintWidget3d
2. 添加交互code
如今我们的自定义窗口部件啥也干不了,接下来咱们要尝试让它可以响应用户的动做。对象
代码以下:blog
1 from kivy.app import App 2 from kivy.uix.widget import Widget 3 4 5 class MyPaintWidget(Widget): 6 def on_touch_down(self, touch): 7 print(touch) 8 9 10 class MyPaintApp(App): 11 def build(self): 12 return MyPaintWidget() 13 14 15 if __name__ == '__main__': 16 MyPaintApp().run()
运行修改后的代码,仍然显示一个黑色的窗口,彷佛没什么变化。可是,当你用鼠标在窗口中点击的时候,发如今 PyCharm 的控制台有输出,并且随着点击位置的不一样,输出的数字也会变化。
当用户在窗口上用鼠标点击的时候,将触发 MyPaintWidget 的 on_touch_down 方法(第 6 行)。on_touch_down 方法的 touch 参数,包含了鼠标点击时的位置信息。这里,咱们还没实现什么有用的交互,只是把鼠标点击的位置信息输出到控制台,即第 7 行代码 print(touch)
【思考】
原文连接:http://www.ipaomi.com/2017/11/15/kivy-中文教程-实例入门-简易画板-simple-paint-app:1-自定义窗口部/