3 poin oleh GN⁺ 2023-12-10 | 1 komentar | Bagikan ke WhatsApp

Mengubah Program Konsol Python Menjadi Aplikasi GUI dengan Gooey

  • Gooey adalah alat untuk mengubah program konsol Python 3 menjadi aplikasi GUI yang ramah pengguna.
  • Dengan menyediakan GUI alih-alih command prompt, program dapat dibuat lebih mudah digunakan dan lebih menarik.
  • Berguna saat membuat skrip untuk pengguna non-programmer atau utilitas untuk pekerjaan seperti pemindahan data.

Cara Kerja Gooey

  • Gooey dihubungkan ke kode dengan menambahkan dekorator pada metode yang memiliki deklarasi argparse.
  • Saat dijalankan, Gooey mengurai skrip Python untuk mengekstrak referensi ArgumentParser lalu menyusun GUI.
  • Dengan GooeyParser, Anda dapat mengontrol widget yang ditampilkan di GUI dengan lebih rinci.

Internasionalisasi Gooey

  • Gooey dapat dengan mudah diterjemahkan ke berbagai bahasa, dan saat ini sudah menyertakan lebih dari 18 terjemahan.
  • Dukungan bahasa baru sesederhana menambahkan pasangan key/value ke direktori gooey/languages/.

Pengaturan Global Gooey

  • Tampilan dan nuansa keseluruhan Gooey dapat dikustomisasi dengan meneruskan argumen ke dekorator.
  • Berbagai elemen konfigurasi seperti encoding, bahasa, ukuran awal, dan pengaturan font dapat disesuaikan.

Kustomisasi Tata Letak Gooey

  • Gooey menawarkan tata letak yang fleksibel melalui beberapa kustomisasi sederhana.
  • Beragam opsi tata letak tersedia, seperti menampilkan sidebar atau menggunakan grup tab.

Mode Eksekusi Gooey

  • Gooey menyediakan beberapa mode tampilan yang dapat menyesuaikan tata letak sesuai jenis konten dan tingkat pengalaman pengguna.
  • Melalui mode advanced, basic, dan no config, Gooey dapat menyediakan GUI yang disesuaikan dengan berbagai kebutuhan pengguna.

Menu Gooey

  • Grup menu dan item kustom dapat ditambahkan ke menu bar Gooey.
  • Mendukung berbagai jenis opsi menu untuk menyediakan informasi program, dialog pesan, tautan, dan lainnya.

Validasi Dinamis Gooey

  • Sebelum meneruskan input pengguna ke program, Gooey dapat secara opsional menjalankan validasi awal untuk memastikan semua argumen lolos pemeriksaan.

Event Siklus Hidup dan Kontrol UI Gooey

  • Gooey menyediakan lifecycle hook yang memungkinkan tindakan lanjutan tambahan untuk eksekusi program yang berhasil atau gagal, serta mengontrol status UI saat ini.

Tampilan Progress Gooey

  • Gooey dapat memperbarui status progress bar berdasarkan pembaruan progres berbasis teks.
  • Melalui regular expression dan ekspresi evaluasi kustom, progres dapat diberitahukan ke Gooey.

Kustomisasi Ikon Gooey

  • Gooey menyediakan kemampuan untuk mengganti ikon default dengan gambar/ikon kustom.
  • Direktori gambar kustom dapat ditentukan melalui argumen image_dir.

Packaging Gooey

  • Mengemas Gooey menjadi file executable sangat mudah, dan aplikasi dapat dibundel menjadi executable siap pakai menggunakan pyinstaller.

Opini GN⁺

Poin terpenting dalam tulisan ini adalah bahwa Gooey memungkinkan program konsol Python diubah dengan mudah menjadi aplikasi GUI. Ini dapat membuat program lebih akrab dan mudah diakses bagi pengguna non-programmer, sehingga pengembang dapat fokus pada logika tanpa terlalu mengkhawatirkan antarmuka pengguna. Berbagai pengaturan dan opsi kustomisasi Gooey juga menjadikannya pilihan yang menarik bagi pengembang, dan dapat sangat membantu menurunkan hambatan masuk dalam pengembangan GUI.

1 komentar

 
GN⁺ 2023-12-10
Komentar Hacker News
  • Penjelasan pengembang tentang proyek Gooey

    • Gooey adalah proyek lama, dan saat pertama dimulai, argparse merupakan pilihan yang solid.
    • Saat ini Gooey menggunakan JSON dan terpisah dari argparse.
    • argparse masih menjadi antarmuka utama, tetapi belum ada alternatif lain yang benar-benar memadai.
    • Dengan Gooey, bukan hanya Python, file executable apa pun juga bisa dipanggil.
    • Mengenai commit terakhir yang sudah 2 tahun lalu, ada ungkapan penyesalan bahwa seiring bertambahnya usia dan berubahnya prioritas, semakin sulit membenarkan mengerjakan perangkat lunak secara gratis.
  • Diskusi tentang hubungan Gooey dan argparse

    • argparse cocok untuk tugas sederhana, tetapi banyak CLI berbasis Click, dan ada juga pustaka CLI populer yang dibangun di atas Click.
    • Belum jelas apakah kompatibel dengan Click, dan jika hanya terbatas pada argparse, maka ungkapan "hampir semua" mungkin tidak sepenuhnya akurat.
    • Meski ada issue terbuka yang mengurangi kepercayaan terhadap proyek ini, proyeknya sendiri tetap memuat ide yang menarik.
  • Tautan ke diskusi Gooey sebelumnya

    • Menyediakan tautan yang menunjukkan bahwa pernah ada diskusi tentang Gooey di Hacker News pada Juni 2021 dan Agustus 2014.
  • Pendapat yang berharap sistem operasi dan shell bisa menjalankan program dengan lebih baik

    • Ada harapan agar program dapat berkomunikasi dalam format JSON/protokol sehingga struktur perintah shell atau GUI bisa ditingkatkan.
    • Saat ini yang ada adalah ekspor file shell completion, beragam gaya flag dan pustaka parsing, dan tidak ada GUI.
  • Pengenalan framework Textual

    • Memperkenalkan framework Textual, yang memungkinkan pembuatan antarmuka pengguna yang berjalan di terminal dan browser web dengan API sederhana menggunakan Python.
  • Pertanyaan tentang versi GUI untuk ffmpeg

    • Menyatakan ketertarikan pada alat yang menyediakan parameter ffmpeg dalam bentuk GUI.
  • Pertanyaan tentang cara mengintegrasikan Gooey dengan alat CLI yang mengharapkan input pengguna

    • Menunjukkan ketertarikan pada cara menambahkan GUI ke skrip bisect untuk debugging game engine agar dapat membantu pengguna mendiagnosis masalah.
  • Ketertarikan pada alat yang mengubah GUI menjadi CLI

    • Menyatakan harapan akan adanya alat yang melakukan kebalikan, yaitu mengubah GUI menjadi CLI.
  • Penyebutan konsep Naked Objects

    • Menjelaskan Naked Objects sebagai ide bahwa jika kelas dan anotasi Java didefinisikan, GUI atau frontend web akan dibuat secara otomatis.
  • Rasa ingin tahu apakah Gooey dapat membuat web app

    • Bertanya-tanya apakah Gooey bisa menghasilkan web app tanpa React atau JS.
    • Menyebut Python Script Server sebagai perbandingan, yaitu alat low-code yang menempatkan frontend web di depan program CLI.