4 คะแนน โดย GN⁺ 2023-12-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

แนะนำ PySimpleGUI

  • PySimpleGUI เป็นแพ็กเกจ Python ที่ช่วยให้โปรแกรมเมอร์ Python ทุกระดับสามารถสร้าง GUI ได้
  • ใช้ layout เพื่อกำหนดหน้าต่าง GUI และสร้างพร้อมโต้ตอบกับหน้าต่างโดยใช้หนึ่งใน tkinter, Qt, WxPython หรือ Remi
  • โค้ดของ PySimpleGUI เรียบง่ายและสั้นกว่าการใช้เฟรมเวิร์กพื้นฐานโดยตรง และมีการจัดการ "boilerplate code" ไว้ให้จำนวนมาก
  • หากจำเป็น สามารถเข้าถึงวิดเจ็ตและหน้าต่างของเฟรมเวิร์กได้โดยตรง จึงสามารถขยายการตั้งค่าหรือความสามารถที่ไม่ได้ถูกเปิดเผยหรือเข้าถึงได้ผ่าน API ของ PySimpleGUI

ก้าวข้าม "GUI Gap"

  • Python ดึงดูดผู้คนจำนวนมากเข้าสู่ชุมชนนักพัฒนา แต่โปรแกรม Python ส่วนใหญ่ยังคงอิงกับ "command line" ทำให้ผู้ใช้ทั่วไปเข้าถึงได้ยาก
  • เมื่อเพิ่ม GUI เข้าไป โปรแกรมจะเข้าถึงได้ง่ายขึ้น และขยายฐานผู้ใช้ได้กว้างขึ้น
  • GUI ช่วยให้การโต้ตอบกับบางโปรแกรมง่ายขึ้น และยังเป็นประโยชน์แม้กับผู้ใช้ที่คุ้นเคยกับอินเทอร์เฟซบรรทัดคำสั่ง

การยอมรับการใช้งานโอเพนซอร์ส

  • มีการให้รายชื่อแพ็กเกจที่ถูกใช้งานใน PySimpleGUI หรือในรีโพซิทอรีของบัญชี PySimpleGUI
  • หากโครงการมีการใช้ซอฟต์แวร์โอเพนซอร์ส ก็ควรให้ข้อมูลเกี่ยวกับแพ็กเกจที่ใช้งานไว้ด้วย

การข้าม "กำแพง"

  • ต่อความเห็นที่ว่าการเรียนรู้การเขียนโปรแกรม GUI มีอุปสรรคสูง โครงการ PySimpleGUI พยายามลดอุปสรรคนั้นลง
  • ผู้ใช้จำนวนมากส่งอีเมลมาเล่าว่าสามารถสร้างโปรแกรม GUI ได้สำเร็จผ่าน PySimpleGUI พร้อมแสดงความยินดีและคำขอบคุณ

สื่อการเรียนรู้

  • มีคอร์ส Udemy อย่างเป็นทางการของ PySimpleGUI และสามารถใช้โค้ดคูปองได้
  • สามารถค้นหาเอกสารได้ที่ www.PySimpleGUI.org ซึ่งมีทั้งเอกสารหลากหลายรูปแบบและความสามารถในการค้นหาได้อย่างง่ายดาย
  • เรียนรู้ได้อย่างรวดเร็วและมีประสิทธิภาพผ่านเอกสารหลายร้อยหน้าและโปรแกรมตัวอย่าง

ความเห็นของ GN⁺

สิ่งสำคัญที่สุดในบทความนี้คือ PySimpleGUI เป็นเครื่องมือที่ช่วยให้ผู้ใช้ Python สร้าง GUI ได้อย่างง่ายดาย รองรับนักพัฒนาทุกระดับตั้งแต่มือใหม่ไปจนถึงผู้เชี่ยวชาญ และยังสามารถทำงานร่วมกับเฟรมเวิร์กที่หลากหลายได้ เหตุผลที่บทความนี้น่าสนใจคือมันแสดงให้เห็นศักยภาพของ PySimpleGUI ในการเพิ่มการเข้าถึงการเขียนโปรแกรม และทำให้ผู้คนจำนวนมากขึ้นสามารถเปลี่ยนไอเดียของตนให้เป็นจริงได้

1 ความคิดเห็น

 
GN⁺ 2023-12-11
ความคิดเห็นจาก Hacker News
  • โปรเจ็กต์ที่ใช้ PySimpleGUI สำหรับบันทึกเวลาใน Jira

    • เนื่องจากการใช้งานเว็บไซต์ Jira ไม่สะดวก จึงสนใจพัฒนาแอปเดสก์ท็อปที่มีรายการอีชูที่ได้รับมอบหมาย พร้อมปุ่มสำหรับเพิ่มบันทึกเวลาและคอมเมนต์
    • ตอนใช้ Tkinter พบความยากในการออกแบบ UI แต่เมื่อใช้ PySimpleGUI ความเร็วในการพัฒนาเพิ่มขึ้นอย่างมาก
    • เป็นโปรเจ็กต์ที่ดีสำหรับเชื่อมต่อกับ Jira API เพื่อสร้างฟังก์ชันที่ต้องการ และได้เรียนรู้การพัฒนา UI ไปพร้อมกัน
  • ความสนใจต่อเฟรมเวิร์ก GUI และข้อดีของ PySimpleGUI

    • มองว่าประสบการณ์เดสก์ท็อปแบบเนทีฟดีกว่า UI ที่อิงเว็บ
    • ประเมินว่า event loop ที่เรียบง่ายและแนวทางหลายแบ็กเอนด์ของ PySimpleGUI เป็นสิ่งที่แปลกใหม่มาก
    • แสดงความสนใจต่อแนวคิดการสร้าง GUI อัตโนมัติโดยอิงจากโครงสร้างข้อมูลและฟังก์ชัน
  • ด้านความสวยงามของ PySimpleGUI และความยากของการจัดสไตล์

    • แม้ตัวอย่างของ PySimpleGUI จะดูเหมือนสไตล์ยุค 90 แต่ก็เหมาะกับการทำต้นแบบหรือเครื่องมือภายในสำหรับผู้ใช้ที่ไม่ใช่สายเทคนิคและไม่สามารถใช้ CLI ได้
    • UI แบบเนทีฟมีประสิทธิภาพดี แต่การจัดสไตล์ทำได้ยากกว่าหน้าเว็บ
    • มีคำถามว่าบน Python GUI มีคอมโพเนนต์ที่ให้หน้าตาดูดีได้ด้วยความพยายามน้อย คล้าย Flutter หรือ SwiftUI หรือไม่
  • ข้อเสนอเพื่อปรับปรุง PySimpleGUI

    • เสนอให้ใช้ดิกชันนารีที่จำลำดับการแทรกแทนลิสต์
    • จากประสบการณ์ใช้ PyQt วิธีที่ตั้งค่าคุณสมบัติ/สัญญาณและซ้อนวิดเจ็ตไปพร้อมกันนั้นมีประโยชน์
    • ขอบคุณ PySimpleGUI ในฐานะไลบรารีที่ช่วยสร้าง GUI แบบง่าย ๆ ได้อย่างรวดเร็ว
  • ความคืบหน้าที่เข้าใกล้ความง่ายในการใช้งานของ VB6 หรือ Delphi/Lazarus

    • แสดงความคาดหวังต่อความจำเป็นของ interactive GUI builder และการที่มันจะช่วยให้พัฒนาง่ายขึ้น
    • เคยเจอปัญหาความเข้ากันได้ระหว่าง WxPython กับ WxFormBuilder และชื่นชม PySimpleGUI ในความพยายามแก้ปัญหานี้
  • ปัญหาการแพ็กเกจสำหรับการพัฒนาแอปเดสก์ท็อปด้วย Python

    • เมื่อมี dependency จำนวนมาก เครื่องมือเดิม ๆ สำหรับสร้างไบนารีที่นำไปแจกจ่ายได้มักมีปัญหา
    • เมื่อใช้ PyInstaller หรือ cx_freeze จะพบปัญหาการโหลดโมดูลแบบไดนามิกและไฟล์ที่ตกหล่น
    • มีการตั้งคำถามถึงความจำเป็นของวิธีแพ็กเกจโปรแกรมแบบแยกอิสระที่เป็นมาตรฐาน คล้าย jar ของ Java
  • ความชอบต่อ CustomTKinter

    • ชื่นชอบธีมที่ดูหรูและทันสมัยของ CustomTKinter รวมถึงการรองรับธีมสว่าง/มืดตามระบบ
  • ความเห็นเรื่องช่องว่างของการพัฒนาแอปแบบรวดเร็วในสไตล์ VB6

    • รู้สึกประหลาดใจที่ยังไม่มีเครื่องมือมาทดแทนพลังของ drag-and-drop GUI builder แบบ VB6 ได้อย่างแท้จริง
  • การพิจารณาเพิ่ม GUI ให้เครื่องมือที่มีอินเทอร์เฟซแบบ CLI

    • กำลังคิดเรื่องการเสริม GUI ให้เครื่องมือ CLI สำหรับผู้ใช้ที่ไม่ได้ใช้เดสก์ท็อปลินุกซ์
    • อยากรู้ประสบการณ์ของคนอื่นที่เคยลองแปลงแบบนี้ และความท้าทายที่น่าจะเกิดขึ้น
  • ประสบการณ์ของทีมที่ไม่ใช่ซอฟต์แวร์ในการใช้ PySimpleGUI

    • มีประโยชน์ต่อการพัฒนา UI อย่างรวดเร็ว แต่เมื่อความซับซ้อนเพิ่มขึ้นก็จะดูแลรักษาและไล่โครงสร้างได้ยาก
    • การจัดสไตล์ยังไม่ดีนัก แต่ก็อาจเหมาะกับการทำต้นแบบระยะสั้น