Apakah Python merupakan pilihan yang baik untuk mengembangkan UI? Jika demikian, wxPython atau Tkinter?

12

Saya menantikan untuk mengembangkan aplikasi desktop menggunakan Python. Saya seorang pemula dan saya tidak memiliki keahlian yang cukup dalam Python. Saya juga seorang programmer Java. Meskipun saya memiliki beberapa pengalaman dalam membangun UI menggunakan Swing, saya melihat bahwa aplikasi yang dikembangkan pada Swing terlalu lambat. Yah ini mungkin salah satu alasan mengapa banyak implementasi utama dilakukan di C / C ++ seperti di browser / game.

Mengembangkan UI di C ++ mungkin merupakan pilihan yang lebih baik tetapi saya lebih memilih untuk memilih bahasa pemrograman tingkat tinggi daripada C / C ++. Jadi saya telah memilih untuk Python dengan anggapan bahwa itu akan berkinerja baik di atas Java Swing karena Python sendiri dibangun secara bawaan pada C / C ++.

Jadi bisakah saya meneruskan asumsi ini bahwa Python lebih baik daripada Java Swing untuk mengembangkan UI? Atau apakah Anda menyarankan bahasa yang lebih baik daripada Python untuk mengembangkan UI? Jika saya melanjutkan dengan Python, toolkit mana yang harus saya gunakan Tkinter atau wxPython dan mengapa?

Vamsi Emani
sumber
4
Asumsi Anda tampaknya cacat. Python dibangun di atas C / C ++, tetapi begitu pula JVM (kemungkinan besar).
user281377
Mengapa membatasi diri Anda pada Tkinter dan wxPython?
Anto
2
Saya tidak mencoba membatasi diri. Saya mendapat kesan bahwa ini adalah dua toolkit terkenal untuk pengembangan GUI.
Vamsi Emani
Lazarus IDE, Free Pascal Compiler, dan Object Pascal membuat cara yang sangat cepat dan mudah untuk mengembangkan GUI.
systemovich

Jawaban:

15

Saya baru saja memulai pengembangan aplikasi desktop windows, menggunakan python. Saya menggunakan PyQt .

Sangat mudah untuk menginstal dan bangun dan berjalan. Tutorial di sini: http://zetcode.com/tutorials/pyqt4/firstprograms/ menunjukkan betapa mudahnya, saya akan menunjukkan kode:

#!/usr/bin/python

# simple.py

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
widget.show()

sys.exit(app.exec_())

Itu membuat Anda jendela ke atas.

Saya memilih Python / PyQt daripada C # / WPF karena saya ingin belajar python dan majikan saya memberi saya waktu.

Manajer saya merekomendasikan PyQt kepada saya di atas kerangka kerja lain, karena dalam pengalamannya lebih mudah digunakan.

Matt Ellen
sumber
2
Ada juga pyside ( pyside.org ), lihat stackoverflow.com/questions/1297660/pyside-vs-pyqt
codeape
Saya telah menggunakan PySide sebelumnya dan bekerja dengan cukup baik. Namun pengembangan PySide di masa depan adalah sedikit limbo karena Nokia telah menjual Qt.
jhocking
5

Jika Anda ingin mengembangkan GUI asli untuk Windows atau OSX, saya akan menyarankan menggunakan Tkinter (yaitu, pustaka GUI Tk dengan pakaian pythonic) karena itu membuat Anda lebih dekat dengan tampilan asli daripada wxPython (wxWidgets for python) . Saya tidak merasa mudah untuk mengukur, tetapi bagi saya tangkapan layar Windows dan OSX . YMMV. Saya tahu bahwa Tk ( penting: dengan set widget Ttk) terlihat sangat asli.

Jika Anda mengembangkan untuk Linux ... Saya benar-benar tidak dapat menasihati satu sama lain, karena saya telah kehilangan jejak apa yang terlihat di platform saat ini. :-)

Donal Fellows
sumber
1
Perhatikan bahwa Tkinter tidak menyediakan banyak widget yang umum digunakan di luar kotak. Misalnya, jika Anda menginginkan bilah kemajuan, Anda harus menulis sendiri atau menemukan yang telah ditulis orang lain.
James
1
Tunggu, tapi wxWidgets menggunakan elemen GUI asli. Setidaknya, ikatan C ++ lakukan. Saya tidak begitu yakin tentang Python.
Zhehao Mao
@ZhehaoMao wxWidgets adalah campuran dari elemen asli dan non-asli. Beberapa elemen terlihat mirip dengan yang asli, tetapi sebenarnya dibuat khusus untuk API yang lebih seragam.
Hubert Grzeskowiak
3

Saya akan mengatakan itu pilihan yang baik jika Anda sudah tahu dan menyukai Python. Jika tidak, gunakan bahasa yang sudah Anda ketahui, yaitu Java. Satu-satunya pengecualian di sini adalah jika ini adalah proyek pembelajaran, dalam hal ini saya akan menyarankan bahwa mendapatkan pengalaman dengan bahasa lain akan menjadi ide yang bagus.

Maksud saya di sini adalah bahwa Python tidak benar-benar lebih baik atau lebih buruk daripada Java untuk aplikasi UI, jadi gunakan alat apa pun yang Anda suka bekerja dengannya.

jhocking
sumber
1

Satu-satunya saran nyata yang dapat diberikan untuk semua pertanyaan seperti ini adalah "cobalah dan lihat apakah Anda menyukainya" - pendapat orang lain tentang bahasa pemrograman (terutama pada bahasa yang paling mereka sukai atau paling benci) jarang bernilai banyak .

Namun, nilai 5 sen saya - untuk mengaktifkan GUI Windows yang cepat dan sederhana, kombinasi Python dan wxWidgets berfungsi dengan sangat baik. Tapi seperti yang saya katakan, coba sendiri - Anda dapat mengumpulkan sesuatu yang sederhana namun bermanfaat dalam satu jam atau lebih, bahkan tanpa banyak pengalaman Python (saya tentu tidak punya banyak).

Neil Butterworth
sumber
1

Jika ada orang yang berakhir di sini melalui mesin pencari: Anda dapat dengan cepat membuat beberapa contoh Tkinter menggunakan generator PAGE. Ini menghasilkan beberapa kode yang layak yang akan memberi Anda gagasan tentang apa yang diperlukan untuk mencapai tujuan yang Anda inginkan. Pasti mengharuskan Anda untuk menyetujui generalitas, seperti yang dinyatakan penulis, tetapi bagi seseorang yang ingin menguji air atau mendapatkan ide umum tentang ke mana mereka pergi, itu adalah alat yang baik. HALAMAN pada SourceForge .

Khusus Aneh
sumber
-1

Saya pikir beberapa jenis aplikasi cukup mudah untuk ditulis dengan Python.

Misalnya Task Coach ditulis dalam Python / wxPython. Mereka menggunakan kompiler Python2exe seperti py2app, py2exe dll untuk membuat cross-platform, executable yang tampak asli.

Program Lenny
sumber
-1

Jika Anda dibatasi untuk mengembangkan di ekosistem Windows, dan menggunakan Visual Studio, maka pertimbangkan Iron Python. Iron Python adalah objek Python plus .NET.

mkClark
sumber