PyQt
PengembangRiverbank Computing
Templat:Kotak info perangkat lunak/simple
Ditulis dalamC++ / Python[1]
Sistem operasiCross-platform
LisensiGNU GPL dan Komersial
Situs webriverbankcomputing.com

PyQt adalah lintas platform GUI perangkat Qt yang mengikat pada Python yang diimplementasikan sebagai plug-in. PyQt adalah perangkat lunak gratis yang dikembangkan oleh perusahaan Inggris bernama Riverbank Computing. PyQt tersedia di bawah persyaratan yang sama untuk Qt versi yang lebih tua dari 4,5; hal ini berarti berbagai bentuk termasuk lisensi GNU General Public License (GPL) dan lisensi komersial, tetapi tidak GNU Lesser General Public License (LGPL).[3] PyQt mendukung Microsoft Windows serta berbagai varian dari UNIX, termasuk Linux dan MacOS (atau Darwin OS).[4]

PyQt mengimplementasikan sekitar 440 kelas dan lebih dari 6.000 fungsi dan metode[5] termasuk:

  • seperangkat widget GUI yang substansial
  • kelas-kelas untuk mengakses SQL database (ODBC, MySQL, PostgreSQL, Oracle, SQLite)[6]
  • QScintilla, widget editor teks kaya berbasis Scintilla
  • widget data aware yang diisi secara otomatis dari database
  • aplikasi XML parser
  • dukungan SVG
  • kelas-kelas untuk menyematkan kontrol ActiveX pada Windows (hanya dalam versi komersial)[7]

Untuk secara otomatis menghasilkan binding ini, Phil Thompson mengembangkan alat SIP, yang juga digunakan pada proyek-proyek lainnya.

Pada bulan agustus 2009, Nokia, pemilik perangkat Qt, merilis PySide, menyediakan fungsi yang sama, tetapi di bawah LGPL,[8] setelah gagal mencapai kesepakatan dengan Riverbank Computing[9] untuk mengubah persyaratan lisensinya untuk memasukkan LGPL sebagai lisensi alternatif.

Alternatif logo PyQt

Komponen utama PyQt

sunting

PyQt4 berisi modul-modul Python.

  • QtCore modul berisi inti non-GUI class, termasuk pengulangan, sinyal dan slot mekanisme. Hal ini juga termasuk platform independen abstraksi untuk Unicode, utas, file yang dipetakan, ruang memori, ekspresi reguler, dan pengguna serta pengaturan aplikasi.
  • QtGui modul berisi sebagian besar dari kelas GUI. Ini termasuk jumlah dari tabel, pohon dan daftar kelas yang berdasarkan pada model–view–controller. Juga disediakan widget kanvas 2D canggih yang mampu menyimpan ribuan item seperti widget biasa.
  • QtNetwork modul berisi kelas-kelas untuk menulis UDP dan TCP klien dan server. Ini termasuk kelas yang menerapkan FTP dan HTTP klien dan dukungan DNS lookup. Peristiwa jaringan yang terintegrasi dengan acara loop sehingga sangat mudah untuk mengembangkan aplikasi jaringan.
  • QtOpenGL modul berisi kelas-kelas yang memungkinkan penggunaan OpenGL melakukan render 3D grafis di aplikasi PyQt.
  • QtSql modul berisi kelas-kelas yang terintegrasi dengan open-source dan proprietary database SQL. Termasuk model data yang dapat diedit untuk tabel database yang dapat digunakan dengan kelas GUI. Juga mencakup implementasi dari SQLite.
  • QtSvg modul berisi kelas-kelas untuk menampilkan isi dari file SVG. Mendukung fitur statis SVG paling kecil versi 1.2.
  • QtXml modul mengimplementasikan tampilan SAX dan DOM untuk Qt XML parser.
  • QtMultimedia modul mengimplementasikan fungsi multimedia tingkat rendah. Pengembang aplikasi biasanya akan menggunakan modul phonon.
  • QtDesigner modul berisi kelas-kelas yang memungkinkan Qt Designer dapat diperluas menggunakan PyQt.
  • Qt modul mengkonsolidasikan kelas-kelas yang terdapat dalam semua modul yang dijelaskan di atas ke dalam satu modul. Ini memiliki keuntungan bahwa anda tidak perlu khawatir tentang yang mendasari modul berisi kelas tertentu. Ini memiliki kelemahan yang memuat seluruh Qt framework, sehingga meningkatkan jejak memori pada aplikasi. Apakah anda menggunakan modul terkonsolidasi, atau masing-masing komponen modul sesuai selera pribadi.
  • Uic modul mengimplementasikan dukungan untuk penanganan file XML yang dibuat dengan Qt Designer yang menggambarkan seluruh atau bagian dari antarmuka pengguna grafis. Ini termasuk kelas yang memuat sebuah file XML dan membuat itu secara langsung, dan kelas-kelas yang menghasilkan kode Python dari sebuah file XML untuk kemudian dieksekusi.[10]

PyQt5 berisi modul-modul Python berikut:

  • QtQml
  • QtQtuick
  • QtCore
  • QtGui
  • QtPrintSupport
  • QtWidgets
  • QGLContext
  • QGLFormat
  • QGLWidget
  • QtWebKit
  • QtWebKitWidgets

Versi

sunting

PyQt versi 4 bekerja dengan baik pada Qt 4 dan Qt 5. Sedangkan PyQt versi 5 hanya mendukung Qt versi 5, dan mengurangi dukungan untuk fitur-fitur lama di Qt 5.[11]

Contoh Hello World

sunting

Kode di bawah ini menunjukkan sebuah jendela kecil di layar.

PyQt4

sunting
Hasilnya dalam Plasma KDE 4

PyQt5

sunting

Aplikasi terkemuka yang menggunakan PyQt

sunting
  • Anki, program flashcard pengulangan jarak
  • Calibre, aplikasi manajemen E-book
  • Dropbox, sebuah layanan file hosting
  • Eric Python IDE
  • fman, pengelola file lintas platform
  • Kodos, Python Regular Expression Debugger
  • Leo, outliner dan literasi pemrograman editor
  • Ninja-IDE, extensible open-source Python IDE
  • OpenShot, program penyunting video
  • Orange, data mining dan kerangka visualisasi
  • Puddletag, sumber terbuka, editor lintas-platform ID3
  • QGIS, aplikasi perangkat lunak desktop gratis Geographic Information Systems (GIS)
  • qt-recordMyDesktop, Qt4 frontend untuk recordMyDesktop
  • Spyder, data ilmu pengetahuan Python IDE
  • TortoiseHg, antarmuka grafis untuk program manajemen sumber Mercurial (Hg)
  • Veusz, aplikasi perencanaan ilmiah

Lihat pula

sunting

PyQt adalah salah satu pilihan Python untuk pemrograman GUI. Pilihan alternatif yang populer adalah PySide (Qt mengikat dengan dukungan resmi dan lebih liberal ), PyGTK, berbasis wxpython, dan Tkinter (yang dibundel dengan Python).

Referensi

sunting
  1. ^ "PyQt4 Download". Riverbankcomputing. 2010. Diakses tanggal 2010-04-19.
  2. ^ "PyQt v5.10.1 Released". Diarsipkan dari asli tanggal 2018-08-15. Diakses tanggal 2018-08-14.
  3. ^ "Riverbank | Commercial | License FAQ". Riverbankcomputing.com. Diakses tanggal 2015-06-24.
  4. ^ "What is PyQt?". Riverbank Computing. Diakses tanggal 2014-09-18.
  5. ^ "PyQt v4 - Python Bindings for Qt v4". Riverbankcomputing. Diakses tanggal 2010-04-17. ;
  6. ^ "QSqlDatabase Class Reference". Pyqt.sourceforge.net. Diakses tanggal 2014-09-25.
  7. ^ PythonInfo Wiki
  8. ^ "PySide has been released – PySide – Python for Qt". Pyside.org. 2009-08-18. Diarsipkan dari asli tanggal 2009-10-25. Diakses tanggal 2009-09-03.
  9. ^ "FAQ – PySide – Python for Qt". Pyside.org. Diarsipkan dari asli tanggal 2012-01-11. Diakses tanggal 2009-09-03.
  10. ^ "Riverbank | Software | PyQt | What is PyQt?". Riverbankcomputing.co.uk. Diakses tanggal 2010-04-15.
  11. ^ "Differences Between PyQt4 and PyQt5", PyQt 5.3.2 Reference Guide, diarsipkan dari asli tanggal 2018-08-14, diakses tanggal 2018-08-14

Bacaan lebih lanjut

sunting

Pranala luar

sunting

📚 Artikel Terkait di Wikipedia

IDLE

Itu sepenuhnya ditulis dengan Python dan toolkit GUI Tkinter (fungsi pembungkus untuk Tcl/Tk). IDLE dimaksudkan sebagai IDE sederhana dan cocok untuk pemula

YouTube

2022-06-11. Claburn, Thomas (January 5, 2017). "Google's Grumpy code makes Python Go". The Register (dalam bahasa Inggris). Diakses tanggal September 16,

Twitter

CrypTweet, aplikasi enskripsi kunci publik pihak ketiga yang ditulis dalam Python dan sebagian besarnya didanai oleh Shuttleworth Foundation, dirilis bagi

Kelinci Caerbannog

Pembunuh dari Caerbannog adalah tokoh fiksi dalam film Monty Python berjudul Monty Python and the Holy Grail. Adegan dalam Holy Grail ditulis oleh Graham

Java

ditetapkan pemakaian internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, internet masih merupakan rintisan

Graph database

2012-01-07 di Wayback Machine. - An open-source distributed graph library with a Python front-end and C++/MPI backend (Combinatorial BLAS Diarsipkan 2014-12-19

Shrek the Third

Teknik yang sama digunakan dalam Monty Python and the Holy Grail, yang juga dibintangi oleh John Cleese dan Eric Idle. Idle mengaku mempertimbangkan untuk

GitHub

mengakuisisi GitHub. Ide awal untuk membuat website untuk berbagi repositori git pertama kali dicetuskan oleh Tom Preston Werner. Ide itu ia sampaikan kepada