ผลต่างระหว่างรุ่นของ "01204223/kivy"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 47: แถว 47:
  
 
ทดลองเรียก python main.py  จะเห็นหน้าจอที่มีคำว่า hello
 
ทดลองเรียก python main.py  จะเห็นหน้าจอที่มีคำว่า hello
 +
 +
แฟ้ม <tt>pong.kv</tt> จะถูกอ่านโดยอัตโนมัติโดย App ที่ชื่อ <tt>PongApp</tt>
 +
 +
=== เพิ่มลูกบอล ===
 +
 +
เราจะเพิ่มคลาส <tt>PongBall</tt> ลงใน main.py
 +
 +
class PongBall(Widget):
 +
    pass
 +
 +
จากนั้นแก้ไข <tt>pong.kv</tt> โดยเพิ่มข้อมูลเกี่ยวกับการวาดวัตถุของคลาส <tt>PongBall</tt> และเพิ่มลูกบอลลงใน widget <tt>PongGame</tt>
 +
 +
<pre>
 +
#:kivy 1.7.1
 +
 +
<PongBall>:
 +
    size: 50, 50
 +
    canvas:
 +
        Ellipse:
 +
            pos: self.pos
 +
            size: self.size
 +
 +
<PongGame>:   
 +
    Label:
 +
        font_size: 70 
 +
        center_x: (root.width * 3) / 4
 +
        top: root.top - 50
 +
        text: "hello"
 +
 +
    PongBall:
 +
        center: self.parent.center
 +
</pre>

รุ่นแก้ไขเมื่อ 00:10, 15 กรกฎาคม 2556

ติดตั้ง kivy

การติดตั้ง สั่งคำสั่งต่อไปนี้ใน shell (อย่าลืม login เครือข่ายนนทรีก่อน)

sudo apt-get install python-setuptools python-pygame python-opengl \
  python-gst0.10 python-enchant gstreamer0.10-plugins-good python-dev \
  build-essential libgl1-mesa-dev libgles2-mesa-dev cython python-pip

จากนั้นสั่ง

sudo easy_install kivy

ทดลองโปรแกรมด้านล่าง

ให้สร้างไดเร็กทอรีย่อย จากนั้นป้อนโปรแกรมด้านล่างลงในแฟ้ม main.py

from kivy.app import App
from kivy.uix.widget import Widget

class PongGame(Widget):
    pass

class PongApp(App):
    def build(self):
        return PongGame()

if __name__ == '__main__':
    PongApp().run()

Kv Language และการสร้าง widget

Kivy แยกส่วนออกแบบหน้าจอออกมาเป็นแฟ้มนามสกุล kv ในส่วนนี้เราจะทดลองการใช้แฟ้มดังกล่าว และแนวคิดพื้นฐานเกี่ยวกับการตอบสนอง event และ observer patterns

เพิ่มแฟ้มชื่อ pong.kv ในไดเร็กทอรี

#:kivy 1.7.1

<PongGame>:    
    Label:
        font_size: 70  
        center_x: (root.width * 3) / 4
        top: root.top - 50
        text: "hello"

ทดลองเรียก python main.py จะเห็นหน้าจอที่มีคำว่า hello

แฟ้ม pong.kv จะถูกอ่านโดยอัตโนมัติโดย App ที่ชื่อ PongApp

เพิ่มลูกบอล

เราจะเพิ่มคลาส PongBall ลงใน main.py

class PongBall(Widget):
    pass

จากนั้นแก้ไข pong.kv โดยเพิ่มข้อมูลเกี่ยวกับการวาดวัตถุของคลาส PongBall และเพิ่มลูกบอลลงใน widget PongGame

#:kivy 1.7.1

<PongBall>:
    size: 50, 50
    canvas:
        Ellipse:
            pos: self.pos
            size: self.size

<PongGame>:    
    Label:
        font_size: 70  
        center_x: (root.width * 3) / 4
        top: root.top - 50
        text: "hello"

    PongBall:
        center: self.parent.center