Pyth Support

คู่มือการสร้าง GUI และวิธีแก้ไขปัญหาไวยากรณ์ใน Pyth 2.1.0

สรุปไวยากรณ์การสร้าง GUI การใช้ Background Thread และรวมวิธีแก้ปัญหาข้อผิดพลาดที่พบบ่อยในการพัฒนาด้วย Pyth 2.1.0

กฎการเขียนและการทำงานใน Pyth 2.1.0

* **การประกาศฟังก์ชัน:** ต้องระบุ {} ต่อท้ายชื่อฟังก์ชันเสมอ แม้ว่าฟังก์ชันนั้นจะไม่มีพารามิเตอร์ เช่น ฟังก์ชัน ชื่อฟังก์ชัน {}

* **การสร้างปุ่มแบบแยกส่วน:** ให้ระบุชื่อปุ่มและตำแหน่งในคำสั่งสร้างปุ่ม เช่น ปุ่มดาวน์โหลด ที่ 30,155 กว้าง390 สูง40 เพื่อให้ Parser แยกชื่อปุ่ม ตำแหน่ง และขนาดได้อย่างถูกต้อง

* **การผูกเหตุการณ์ (Event Handling):** ใช้บล็อก เมื่อกด[ชื่อปุ่ม] สำหรับกำหนดสิ่งที่จะเกิดขึ้นเมื่อผู้ใช้คลิกปุ่ม ไม่จำเป็นต้องระบุตำแหน่งหรือขนาดของปุ่มซ้ำ

* **การทำงานเบื้องหลัง (Background Threading):** ใช้คำสั่ง ทำเบื้องหลัง [ชื่อฟังก์ชัน] สำหรับงานที่อาจใช้เวลานาน เช่น การดาวน์โหลดไฟล์ เพื่อไม่ให้หน้าต่าง GUI ค้างหรือขึ้น Not Responding

* **Progress Bar สำหรับการดาวน์โหลด:** หากใช้ ดาวน์โหลดไฟล์ ... แสดงความคืบหน้า ระบบจะจัดการเปอร์เซ็นต์การดาวน์โหลดระหว่างทำงานให้ จึงควรเริ่ม Progress Bar ที่ 0 และไม่ควรตั้งเป็น 50 ก่อนเริ่มดาวน์โหลด เพราะค่าความคืบหน้าจริงอาจเริ่มตั้งแต่ 0–100%

* **การตรวจข้อมูลก่อนเริ่มงาน:** ควรตรวจสอบค่าที่ผู้ใช้กรอก เช่น URL ว่างหรือไม่ ก่อนเริ่ม Background Task

---

ตัวอย่างโค้ดที่ถูกต้อง (GUI ดาวน์โหลดไฟล์)

```text

นำเข้า gui

# 1. หน้าต่างหลัก

หน้าต่างปกติชื่อ=โปรแกรมดาวน์โหลด MP4 กว้าง=450 สูง=220

# 2. ส่วนรับข้อมูล

ข้อความ กรุณากรอก URL วิดีโอ MP4: ที่30,25

ช่องกรอก ชื่อ=ช่องลิงก์ ที่30,55 กว้าง390

ข้อความ สถานะ: พร้อมใช้งาน ที่30,95

แถบความคืบหน้า ชื่อ=หลอดโหลด ค่า=0 ที่30,120 กว้าง390

# 3. ฟังก์ชันดาวน์โหลด

ฟังก์ชัน กระบวนการดาวน์โหลด {}

ดาวน์โหลดไฟล์ ลิงก์=ช่องลิงก์ บันทึกเป็น=video.mp4 แสดงความคืบหน้า

ตั้งความคืบหน้า หลอดโหลด ค่า=100

แจ้งเตือน สำเร็จ ดาวน์โหลดไฟล์ video.mp4 เรียบร้อยแล้ว

จบฟังก์ชัน

# 4. สร้างปุ่มดาวน์โหลด

ปุ่มดาวน์โหลด ที่30,155 กว้าง390 สูง40

# 5. ผูกเหตุการณ์เมื่อกดปุ่ม

เมื่อกดดาวน์โหลด

ถ้า ช่องลิงก์ เท่ากับ ""

แจ้งเตือน เตือน กรุณากรอก URL ก่อนกดดาวน์โหลด

ไม่งั้น

ตั้งความคืบหน้า หลอดโหลด ค่า=0

ทำเบื้องหลัง กระบวนการดาวน์โหลด

จบ

จบ

แสดงหน้าต่าง




## ลำดับการทำงาน



เมื่อผู้ใช้กดปุ่ม `ดาวน์โหลด` ระบบจะทำงานตามลำดับดังนี้



1. ตรวจสอบว่าช่อง URL มีข้อมูลหรือไม่

2. หากไม่มี URL จะแสดงข้อความเตือน

3. หากมี URL จะรีเซ็ต Progress Bar เป็น `0`

4. เรียก `กระบวนการดาวน์โหลด` ด้วยคำสั่ง `ทำเบื้องหลัง`

5. ดาวน์โหลดไฟล์โดยไม่ทำให้หน้าต่างหลักค้าง

6. `แสดงความคืบหน้า` จะอัปเดตเปอร์เซ็นต์ระหว่างการดาวน์โหลด

7. เมื่อเสร็จจะตั้ง Progress Bar เป็น `100`

8. แสดงข้อความแจ้งว่าดาวน์โหลดสำเร็จ



## หมายเหตุ



ตัวอย่างนี้ใช้สำหรับ URL ที่ชี้ไปยังไฟล์ที่สามารถดาวน์โหลดได้โดยตรง เช่นไฟล์ `.mp4`



ตัวอย่าง:



```text

https://example.com/video.mp4

คำสั่ง ดาวน์โหลดไฟล์ ไม่ได้หมายถึงระบบดาวน์โหลดวิดีโอจากหน้าเว็บไซต์ทุกประเภทโดยอัตโนมัติ เช่น URL หน้าวิดีโอจากแพลตฟอร์มที่ไม่ได้เป็นลิงก์ไฟล์โดยตรง

แนวทางนี้ช่วยให้โค้ด Pyth อ่านง่าย และแยกหน้าที่ออกเป็นส่วนชัดเจน ได้แก่ **GUI → Event → Validation → Background Task → Download → Progress → Result**

กลับไปทุกปัญหา

สนับสนุนผู้พัฒนา

ร่วมสนับสนุนการพัฒนา Pyth

ทุกการสนับสนุนช่วยให้พัฒนาคู่มือ ตัวอย่าง และเวอร์ชันใหม่ต่อไปได้