Ada begitu banyak kerangka kerja untuk menulis aplikasi GUI menggunakan Python. Tetapi apakah ada satu kerangka kerja standar utama? Sebagai contoh, kami memiliki bundel .NET / C # di Visual Studio.
Saya juga berpikir dalam perspektif lain. Di masa depan jika saya memberikan wawancara untuk pekerjaan programmer Python, kerangka GUI mana yang akan dipertimbangkan?
Saya juga bertanya-tanya, tidak ada IDE yang mengintegrasikan bahasa GUI dan Python. Pilihan citarasa memang bagus tetapi pilihan berlebihan menjadi gangguan.
Jawaban:
Anda dapat menulis aplikasi Win32 API GUI dengan Python, jika Anda suka menulis semua kode boilerplate: proyek PyWin32
Secara pribadi, saya suka wxPython . Ini adalah cross-platform (didukung penuh pada Linux dan Windows) dan telah ada selama beberapa waktu ... basis dukungan yang layak, dan banyak dokumentasi / contoh kode. Jika Anda ingin menggunakan ini, lihat BoaConstructor . Itu adalah IDE untuk wxPython (atau mungkin lebih baik dinyatakan, sebuah IDE yang ditulis dalam dan untuk wxPython). Ini adalah satu-satunya RAD IDE khusus untuk Python yang saya temui yang bahkan layak disebutkan, simpan Qt UI editor (Qt's UI editor dapat digunakan untuk C ++ dan PyQT).
Seperti yang disebutkan Peter dalam jawabannya, Tk adalah GUI defacto untuk aplikasi Python yang lebih lama, tetapi mereka benar-benar tidak terlihat cantik bagi pengguna akhir. Ada beberapa ekstensi untuk itu yang membuatnya terlihat sedikit lebih baik dan memberikan beberapa kemampuan untuk menata UI, tetapi kecuali Anda mempertahankan aplikasi GUI yang lebih tua, saya tidak akan menyarankan untuk membuatnya repot.
pyGTK, juga sudah disebutkan, akan menjadi pilihan lain yang bagus. Ini juga cross-platform, meskipun saya belum punya pengalaman pribadi dengan pengembangan GTK di Windows. PyQT akan menjadi pilihan yang lebih baik, IMO - Saya pikir GUI yang dibuat dengan perpustakaan Qt terlihat dan berfungsi lebih baik daripada yang dibuat dengan GTK. Saya juga menemukan mekanisme peristiwa sinyal / slot Qt agar lebih mudah untuk dikerjakan. YMMV.
Sebenarnya tidak ada standar apa pun di luar sana untuk pengembangan GUI Python, setidaknya bukan yang pernah saya lihat, tetapi dari sesama pengembang Python yang telah bekerja sama dengan saya selama bertahun-tahun, mereka telah menyarankan kepada saya wxPython dan PyQT lebih dari yang lain toolkit. Saya tidak yakin apakah ada sejumlah besar posisi pengembangan GUI Python di luar sana, jujur. Sebagian besar pengembangan Python yang telah saya lakukan selama bertahun-tahun adalah sisi-server, tetapi itu tidak berarti bahwa tidak ada berbagai bisnis sekarang mencari untuk pergi rute open source untuk aplikasi GUI mereka.
sumber
Tk dulu standar, tapi ini bisa dibilang sederhana dan jelek. Kemudian Qt menjadi sangat populer. Gtk juga memungkinkan, dan itu mencakup favorit pada platform Linux-ish.
Tapi Anda benar, benar-benar tidak ada jawaban. Lagipula, over-choice cukup umum di dunia open source.
sumber
Tidak ada 'standar' dan saya setuju - kebanyakan pilihan adalah menyakitkan. Adapun IDE 'alat dua arah' terintegrasi untuk Python GUI, saya juga bertanya-tanya mengapa sepertinya tidak ada apa-apa di luar sana - mungkin karena ada begitu banyak toolkit GUI yang tidak seorang pun ingin berinvestasi dalam IDE hanya untuk satu mereka.
Karena itu, PyQt 4.7 dengan P3k akan memberi Anda GUI yang luar biasa (serta banyak fitur canggih lainnya). Lihat http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.html - "Ini adalah panduan referensi untuk PyQt 4.8.4. PyQt v4 adalah seperangkat pengikat Python untuk v4 dari Qt kerangka kerja aplikasi dari Nokia. "
PyQt sedang digunakan secara luas dan ada beberapa buku bagus di dalamnya: lihat http://www.qtrac.eu/pyqtbook.html antara lain "Pemrograman GUI cepat dengan Python dan Qt", antara lain (buku sudah ketinggalan jaman - perlu diperbarui - perlu diperbarui untuk P3k).
Ada 2 masalah serius dengan PyQt:
1) Ini memiliki beberapa karakteristik 'unpythonic', menjadi pembungkus tipis pada lib C ++ Qt. Tapi saya merekomendasikan P3k-PyQt 4.7 karena beberapa yang telah dibahas dalam paket 'terbaru dan terhebat'. Lihat pos ini:
Masalah desain PyQt
2) Untuk penggunaan komersial ada biaya lisensi yang cukup curam, baik untuk PyQt dan Qt.
Alternatif lain yang muncul untuk PyQt adalah PySide dari Nokia, pembungkus Python lain untuk Qt yang sepenuhnya open source (yang tidak termasuk lisensi Qt).
Mengetahui banyak tentang Qt bukanlah hal yang buruk dari sisi pasar, dan Anda akan mendapatkannya dari PyQt, jadi saya akan memberikannya (atau PySide) pertimbangan serius jika Anda mencoba memutuskan satu platform GUI untuk menjadi ahli dalam .
Terlepas dari apa yang Anda pilih, saya sarankan menghindari tkinter untuk sebagian besar, meskipun itu 'di luar kotak' dengan Python, karena itu sangat terbatas, dan IMO memiliki tampilan dan nuansa yang kasar dan ketinggalan jaman.
HTH
sumber
pyGTK produktif. Ini cukup mudah digunakan dan membuat GUI yang tidak terlihat setengah buruk.
sumber
Gtk3 adalah kerangka kerja GUI yang sangat matang. Ini memiliki binding Python asli (Introspeksi GObject) dan banyak dokumentasi . Jika Anda melakukan sedikit GUI, pertimbangkan untuk menggunakan Anjuta . Anjuta memiliki antarmuka seret dan lepas untuk mengatur widget Anda dengan mudah.
WxWidgets cukup bagus, namun tidak ada cara mudah untuk membuat panggilan balik Python dihasilkan secara dinamis seperti yang dilakukan Anjuta untuk Gtk.
PyGtk sekarang tidak digunakan lagi karena Gtk3 menjadi Python bindings (GObject Introspection)
PyQt juga pemain di Python GUI, tetapi tidak memiliki komunitas besar.
BoaConstructor lebih lama dipertahankan dan akan menjadi bodoh untuk digunakan.
sumber