4 điểm bởi GN⁺ 2023-12-11 | 1 bình luận | Chia sẻ qua WhatsApp

Giới thiệu về PySimpleGUI

  • PySimpleGUI là một gói Python giúp lập trình viên Python ở mọi trình độ có thể tạo GUI.
  • Sử dụng layout để định nghĩa cửa sổ GUI, sau đó tạo và tương tác với cửa sổ bằng một trong các công nghệ: tkinter, Qt, WxPython, hoặc Remi.
  • Mã PySimpleGUI đơn giản và ngắn gọn hơn so với việc trực tiếp dùng framework nền tảng, đồng thời đảm nhiệm nhiều phần "boilerplate code".
  • Khi cần, có thể truy cập trực tiếp vào widget và cửa sổ của framework, nên cũng có thể mở rộng các thiết lập hay tính năng không được phơi bày hoặc không thể truy cập qua API của PySimpleGUI.

Vượt qua "GUI Gap"

  • Python đã thu hút nhiều người đến với cộng đồng lập trình, nhưng phần lớn chương trình Python vẫn dựa trên "dòng lệnh", nên khá khó tiếp cận với người dùng phổ thông.
  • Việc thêm GUI giúp chương trình dễ tiếp cận hơn và mở rộng phạm vi người dùng.
  • GUI giúp việc tương tác với một số chương trình trở nên dễ dàng hơn, đồng thời cũng hữu ích cả với những người dùng đã quen với giao diện dòng lệnh.

Ghi nhận việc sử dụng mã nguồn mở

  • Cung cấp danh sách các gói được sử dụng trong PySimpleGUI hoặc trong kho lưu trữ của tài khoản PySimpleGUI.
  • Khi dự án sử dụng phần mềm mã nguồn mở, nên cung cấp thông tin về các gói đã được dùng.

Vượt qua "rào cản"

  • Trước ý kiến cho rằng rào cản học lập trình GUI là quá cao, dự án PySimpleGUI đã cố gắng hạ thấp rào cản này.
  • Dự án nhận được email từ người dùng cho biết họ đã tạo thành công chương trình GUI thông qua PySimpleGUI và bày tỏ niềm vui cũng như sự biết ơn.

Tài liệu học tập

  • Có khóa học Udemy chính thức của PySimpleGUI và có thể sử dụng mã coupon.
  • Có thể tìm tài liệu tại www.PySimpleGUI.org, nơi cung cấp nhiều loại tài liệu cùng khả năng tìm kiếm dễ dàng.
  • Có thể học nhanh và hiệu quả thông qua hàng trăm trang tài liệu và các chương trình ví dụ.

Ý kiến của GN⁺

Điều quan trọng nhất trong bài viết này là PySimpleGUI là một công cụ giúp người dùng Python dễ dàng tạo GUI. Công cụ này có thể được sử dụng bởi các nhà phát triển ở mọi trình độ, từ người mới bắt đầu đến chuyên gia, và cung cấp khả năng tích hợp với nhiều framework khác nhau. Lý do bài viết này thú vị là vì nó cho thấy tiềm năng của PySimpleGUI trong việc nâng cao khả năng tiếp cận với lập trình và giúp nhiều người hơn hiện thực hóa ý tưởng của mình.

1 bình luận

 
GN⁺ 2023-12-11
Ý kiến Hacker News
  • Dự án sử dụng PySimpleGUI để ghi log thời gian Jira

    • Do cảm thấy việc sử dụng website Jira bất tiện, đã quan tâm đến việc phát triển một ứng dụng desktop có danh sách các issue được giao cùng nút thêm log và bình luận.
    • Khi dùng Tkinter đã gặp khó khăn trong thiết kế UI, nhưng với PySimpleGUI thì tốc độ phát triển được cải thiện đáng kể.
    • Đây là một dự án tốt để tích hợp với Jira API nhằm hiện thực hóa các tính năng mong muốn và học phát triển UI.
  • Sự hứng thú với framework GUI và ưu điểm của PySimpleGUI

    • Cho rằng trải nghiệm desktop native tốt hơn UI dựa trên web.
    • Đánh giá vòng lặp sự kiện được đơn giản hóa và cách tiếp cận đa backend của PySimpleGUI là rất đột phá.
    • Bày tỏ sự quan tâm đến ý tưởng tự động tạo GUI dựa trên cấu trúc dữ liệu và hàm.
  • Khía cạnh thẩm mỹ của PySimpleGUI và độ khó khi styling

    • Ví dụ của PySimpleGUI trông như phong cách thập niên 90, nhưng phù hợp để làm prototype/công cụ nội bộ cho người dùng không chuyên kỹ thuật, những người không thể dùng CLI.
    • Hiệu năng của UI native là tốt, nhưng styling khó hơn so với trang web.
    • Hỏi về các component trong GUI Python có thể mang lại giao diện đẹp với ít công sức, tương tự Flutter hay SwiftUI.
  • Đề xuất cải thiện cho PySimpleGUI

    • Đề xuất dùng dictionary ghi nhớ thứ tự chèn thay vì list.
    • Từ kinh nghiệm dùng PyQt, cách vừa thiết lập thuộc tính/signal vừa lồng widget cùng lúc tỏ ra hữu ích.
    • Cảm ơn PySimpleGUI như một thư viện giúp xây dựng GUI đơn giản rất nhanh.
  • Tiến bộ tiến gần đến mức dễ dùng của VB6 hay Delphi/Lazarus

    • Bày tỏ kỳ vọng về sự cần thiết của một GUI builder tương tác và việc nó có thể cải thiện sự thuận tiện trong phát triển.
    • Đã trải nghiệm vấn đề tương thích giữa WxPython và WxFormBuilder, đồng thời đánh giá tích cực nỗ lực giải quyết điều đó và PySimpleGUI.
  • Vấn đề đóng gói khi phát triển ứng dụng desktop Python

    • Khi có nhiều dependency, các công cụ hiện có gặp vấn đề trong việc tạo binary có thể phân phối.
    • Khi dùng PyInstaller hay cx_freeze phát sinh vấn đề nạp module động và thiếu file.
    • Nêu ra nhu cầu về một phương thức đóng gói chương trình độc lập được tiêu chuẩn hóa như jar của Java.
  • Mức độ ưa thích dành cho CustomTKinter

    • Ưa thích theme thanh lịch, hiện đại của CustomTKinter và khả năng hỗ trợ theme sáng/tối theo hệ thống.
  • Ý kiến về khoảng trống trong phát triển ứng dụng nhanh của VB6

    • Ngạc nhiên vì sức mạnh của GUI builder kéo-thả của VB6 và việc vẫn chưa có công cụ nào thực sự lấp được khoảng trống đó.
  • Cân nhắc bổ sung GUI cho công cụ có giao diện CLI

    • Suy nghĩ về ý tưởng gắn thêm GUI cho công cụ CLI để phục vụ người dùng không dùng desktop Linux.
    • Tò mò về trải nghiệm của người khác khi thử chuyển đổi như vậy và những thách thức có thể gặp.
  • Trải nghiệm của nhóm không làm phần mềm khi dùng PySimpleGUI

    • Hữu ích cho việc phát triển UI nhanh, nhưng khi độ phức tạp tăng lên thì việc bảo trì và điều hướng trở nên khó khăn.
    • Styling còn hạn chế, nhưng có thể phù hợp cho việc làm prototype trong thời gian ngắn.