Gooey: Biến gần như mọi chương trình dòng lệnh Python thành ứng dụng GUI hoàn chỉnh
(github.com/chriskiehl)Chuyển chương trình console Python thành ứng dụng GUI với Gooey
- Gooey là một công cụ chuyển các chương trình console Python 3 thành các ứng dụng GUI thân thiện với người dùng.
- Thay vì cửa sổ dòng lệnh, nó cung cấp GUI để chương trình trở nên dễ dùng và đẹp mắt hơn.
- Hữu ích khi tạo các tiện ích cho script hướng tới người không phải lập trình viên hoặc cho các tác vụ như di chuyển dữ liệu.
Gooey hoạt động như thế nào
- Gooey được gắn vào mã bằng cách thêm decorator vào phương thức có khai báo
argparse. - Khi chạy, nó phân tích script Python để trích xuất tham chiếu
ArgumentParservà lắp ráp GUI. - Có thể dùng
GooeyParserđể kiểm soát chi tiết hơn các widget hiển thị trong GUI.
Quốc tế hóa của Gooey
- Gooey có thể dễ dàng được dịch sang nhiều ngôn ngữ khác nhau và hiện đã bao gồm hơn 18 bản dịch.
- Việc hỗ trợ ngôn ngữ mới đơn giản như thêm các cặp khóa/giá trị vào thư mục
gooey/languages/.
Cấu hình toàn cục của Gooey
- Diện mạo và cảm giác tổng thể của Gooey có thể được tùy biến bằng cách truyền đối số vào decorator.
- Có thể tùy chỉnh nhiều thành phần như encoding, ngôn ngữ, kích thước khởi động, thiết lập phông chữ, v.v.
Tùy biến bố cục của Gooey
- Gooey cung cấp bố cục linh hoạt thông qua một vài tùy chỉnh đơn giản.
- Nó hỗ trợ nhiều tùy chọn bố cục như hiển thị thanh bên hay dùng nhóm tab.
Chế độ chạy của Gooey
- Gooey cung cấp nhiều chế độ hiển thị cho phép điều chỉnh bố cục phù hợp với loại nội dung và mức độ kinh nghiệm của người dùng.
- Thông qua các chế độ nâng cao, cơ bản và không có cấu hình, có thể cung cấp GUI tùy biến theo nhiều nhu cầu người dùng khác nhau.
Menu của Gooey
- Có thể thêm các nhóm menu và mục menu tùy chỉnh vào thanh menu của Gooey.
- Nó hỗ trợ nhiều kiểu tùy chọn menu khác nhau để cung cấp thông tin chương trình, hộp thoại thông báo, liên kết, v.v.
Xác thực động của Gooey
- Trước khi chuyển đầu vào của người dùng cho chương trình, Gooey có thể tùy chọn chạy bước xác thực trước để bảo đảm mọi đối số đều vượt qua kiểm tra.
Sự kiện vòng đời và điều khiển UI của Gooey
- Gooey cung cấp các hook vòng đời để thực hiện các bước xử lý tiếp theo khi chương trình chạy thành công hoặc thất bại, đồng thời kiểm soát trạng thái hiện tại của UI.
Hiển thị tiến trình của Gooey
- Gooey có thể cập nhật trạng thái của thanh tiến trình dựa trên các bản cập nhật tiến trình dạng văn bản.
- Có thể thông báo tiến trình cho Gooey thông qua biểu thức chính quy và các biểu thức đánh giá tùy chỉnh.
Tùy biến biểu tượng của Gooey
- Gooey cung cấp khả năng thay thế các biểu tượng mặc định bằng hình ảnh/biểu tượng tùy chỉnh.
- Có thể chỉ định thư mục hình ảnh tùy chỉnh thông qua đối số
image_dir.
Đóng gói Gooey
- Việc đóng gói Gooey thành tệp thực thi rất dễ dàng, và có thể dùng pyinstaller để đóng gói ứng dụng thành tệp thực thi sẵn sàng sử dụng.
Ý kiến của GN⁺
Điểm quan trọng nhất trong bài viết này là Gooey có thể dễ dàng chuyển các chương trình console Python thành ứng dụng GUI. Điều này có thể giúp chương trình trở nên thân thiện và dễ tiếp cận hơn với những người dùng không phải lập trình viên, nhờ đó nhà phát triển có thể tập trung vào logic mà không phải quá lo lắng về giao diện người dùng. Các tùy chọn cấu hình và tùy biến đa dạng của Gooey cũng mang lại một lựa chọn hấp dẫn cho nhà phát triển, góp phần đáng kể vào việc hạ thấp rào cản gia nhập trong phát triển GUI.
1 bình luận
Ý kiến Hacker News
Giải thích của nhà phát triển về dự án Gooey
argparselà một lựa chọn vững chắc.argparse.argparsevẫn là giao diện chính, nhưng chưa có lựa chọn thay thế nào thực sự phù hợp.Thảo luận về mối quan hệ giữa Gooey và
argparseargparsephù hợp với các tác vụ đơn giản, nhưng có rất nhiều CLI dựa trênClick, và cũng tồn tại các thư viện CLI phổ biến xây dựng trênClick.Clickhay không; nếu chỉ giới hạn ởargparsethì cách nói "gần như mọi" có thể không thật sự chính xác.Cung cấp liên kết đến các cuộc thảo luận trước đây về Gooey
Ý kiến mong muốn hệ điều hành và shell có thể chạy chương trình tốt hơn
Giới thiệu framework Textual
Textual, cho phép xây dựng giao diện người dùng chạy trong terminal và trình duyệt web bằng Python với API đơn giản.Hỏi về phiên bản GUI cho ffmpeg
Câu hỏi về cách tích hợp Gooey với công cụ CLI cần đầu vào từ người dùng
Quan tâm đến công cụ chuyển từ GUI sang CLI
Đề cập đến khái niệm Naked Objects
Tò mò liệu Gooey có thể tạo ứng dụng web hay không