美文网首页
Kivy 中文教程 实例入门 简易画板 (Simple Pain

Kivy 中文教程 实例入门 简易画板 (Simple Pain

作者: 爱跑咪 | 来源:发表于2017-11-19 12:50 被阅读0次
    1. 框架代码

    用 PyCharm 新建一个名为 SimplePaintApp 的项目,然后新建一个名为 simple_paint_app.py 的 Python 源文件,

    在代码编辑器中,输入以下框架代码

    from kivy.app import App
    from kivy.uix.widget import Widget
     
     
    class MyPaintWidget(Widget):
        pass
     
     
    class MyPaintApp(App):
        def build(self):
            return MyPaintWidget()
     
     
    if __name__ == '__main__':
        MyPaintApp().run()
    

    运行上面的代码,将显示一个黑色背景的窗口

    看起来很没劲的样子,不过你可不要小瞧这几行代码。这些就是简易画板的框架代码,它就像是程序的骨架,后面咪博士将会带领大家在这副骨架上添加各种新功能,逐步丰富和完善应用。

    第 5 行 class MyPaintWidget(Widget): 从类 Widget 继承,构造我们的自定义窗口部件 MyPaintWidget。画板的主要逻辑将在 MyPaintWidget 这个类中实现。现在我们只写了一个 pass (第 6 行),相当于是占位符,先让整段代码跑起来,具体的功能,我们将在后面的教程中补充。

    第 12 行 return MyPaintWidget() 在应用初始化时(调用 build 方法)创建并返回自定义窗口部件对象 MyPaintWidget

    1. 添加交互

    现在咱们的自定义窗口部件啥也干不了,接下来我们要尝试让它能够响应用户的动作。

    代码如下:运行上面的代码,将显示一个黑色背景的窗口

    image

    看起来很没劲的样子,不过你可不要小瞧这几行代码。这些就是简易画板的框架代码,它就像是程序的骨架,后面咪博士将会带领大家在这副骨架上添加各种新功能,逐步丰富和完善应用。

    第 5 行

    class MyPaintWidget(Widget):

    从类 Widget 继承,构造我们的自定义窗口部件 MyPaintWidget。画板的主要逻辑将在 MyPaintWidget 这个类中实现。现在我们只写了一个

    pass

    (第 6 行),相当于是占位符,先让整段代码跑起来,具体的功能,我们将在后面的教程中补充。

    第 12 行

    return MyPaintWidget()

    在应用初始化时(调用 build 方法)创建并返回自定义窗口部件对象 MyPaintWidget

    2. 添加交互

    现在咱们的自定义窗口部件啥也干不了,接下来我们要尝试让它能够响应用户的动作。

    代码如下:

    from kivy.app import App
    from kivy.uix.widget import Widget
     
     
    class MyPaintWidget(Widget):
        def on_touch_down(self, touch):
            print(touch)
     
     
    class MyPaintApp(App):
        def build(self):
            return MyPaintWidget()
     
     
    if __name__ == '__main__':
        MyPaintApp().run()
    

    运行修改后的代码,仍然显示一个黑色的窗口,似乎没什么变化。但是,当你用鼠标在窗口中点击的时候,发现在 PyCharm 的控制台有输出,而且随着点击位置的不同,输出的数字也会变化。

    当用户在窗口上用鼠标点击的时候,将触发 MyPaintWidget 的 on_touch_down 方法(第 6 行)。on_touch_down 方法的 touch 参数,包含了鼠标点击时的位置信息。这里,我们还没实现什么有用的交互,只是把鼠标点击的位置信息输出到控制台,即第 7 行代码 print(touch)

    【思考】

    用本节的应用做实验,思考 kivy 采用的坐标系统是什么样的?(原点在哪里?x 和 y 的方向如何?)
    

    运行修改后的代码,仍然显示一个黑色的窗口,似乎没什么变化。但是,当你用鼠标在窗口中点击的时候,发现在 PyCharm 的控制台有输出,而且随着点击位置的不同,输出的数字也会变化。

    image

    当用户在窗口上用鼠标点击的时候,将触发 MyPaintWidget 的 on_touch_down 方法(第 6 行)。on_touch_down 方法的 touch 参数,包含了鼠标点击时的位置信息。这里,我们还没实现什么有用的交互,只是把鼠标点击的位置信息输出到控制台,即第 7 行代码

    print(touch)

    【思考】

    相关文章

      网友评论

          本文标题:Kivy 中文教程 实例入门 简易画板 (Simple Pain

          本文链接:https://www.haomeiwen.com/subject/vviuvxtx.html