วันเสาร์ที่ 23 มกราคม พ.ศ. 2559

ปัญหาการเรียกใช้ฟังก์ชั่นในไฟล์ .kv

การเขียนโปรแกรมด้วยภาษา Kivy
ปัญหาการเรียกใช้ฟังก์ชั่นในไฟล์ .kv

   ในการเขียนโปรแกรมด้วยภาษา kivy นั้น จะทำงานร่วมกับภาษา python โดยจะแบ่งหน้าที่กันเป็นสองส่วน เปรียบได้ว่า python จะเป็นตัวกำหนดการทำงาน ส่วน kivy จะระบุส่วนประกอบของหน้าโปรแกรม และ GUI (Graphic User Interface)

   GUI (Graphic User Interface) คือ ส่วนที่ทำงานติดต่อกับผู้ใช้ อ่านการกระทำ และไปใช้ในการประมวลผลต่างๆ เช่น เราออกแบบ Button เอาไว้ เมื่อมีการกดที่ปุ่มนี้ จะให้แสดงคำว่า "Hello" 

   วิธีการเขียนคำสั่งแบบนั้น ใน kivy จะเขียนได้ดังนี้

ใน python file

def Hello():
   text = "Hello"
   return text

ใน kivy file

Button:
   on_press: root.hello()

   ที่ขีดเส้นใต้เอาไว้ คือ ฟังก์ฃั่นที่ถูกสร้างอยู่ใน python file โดยฟังก์ชั่นนี้ไม่มีการรับพารามิเตอร์ 
   แต่ถ้าฟังก์ชั่นนั้นมีพารามิเตอร์เราสามารถใส่พารามิเตอร์ ในการเรียกใช้ได้เลย ตัวอย่างเช่น

ใน python file

def hello(name):
   text = "Hello "+name
   return text

ใน kivy file

Button:
   on_press: root.hello("Somruk")

   แต่ถ้าพารามิเตอร์ที่เราจะเรียกใช้เป็น attribute ที่มีอยู่แล้ว และไปเรียกใช้ฟังก์ชั่นใน kivy ซึ่ง kivy ไม่ได้รู้จัก attribute นั้น จะทำให้ผลลัพท์ที่ได้ผิดพลาดไป ยกตัวอย่างจากผลงานของผู้เขียน

   โปรแกรมรับข้อมูลชื่อจาก textinput และไปเพิ่ม ชื่อใน List



จากรูป ที่ตรงกลาง มีการเรียกใช้ฟังก์ชั่น addStudent และ พารามิเตอร์เป็น attribute ใน python ผลที่ได้คือ


 
   วิธีการแก้ คือ ให้เราเรียกใช้ ฟังก์ชั่นนี้ ใน python ไฟล์ เพื่อให้ฟังก์ฃั่นนั้น รู้ัจัก attribute



   ในที่นี้ได้เรียกผ่านฟังก์ชั่นที่ชื่อว่า OpenFile
   ผลที่ได้
   

   จะเห็นว่าผลลัพท์สอดคล้องกับข้อมูลที่ใส่เข้าไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น