Pyqt

PyQt, bir Python eklentisi olarak uygulanan, platformlar arası GUI araç seti Qt'nin bir Python bağlantısıdır.4.5'ten daha eski Qt sürümlerine benzer koşullar altında mevcuttur; bu, GNU Genel Kamu Lisansı (GPL) ve ticari lisans dahil olmak üzere çeşitli lisanslar anlamına gelmektedir. Ancak GNU Kısıtlı Genel Kamu Lisansı (LGPL) değildir.PyQt, Microsoft Windows'u, Linux'ı ve MacOS (veya Darwin) dahil olmak üzere çeşitli UNIX çeşitlerini desteklemektedir.PyQt, yaklaşık 440 sınıftan oluşmaktadır. Ayrıca, aşağıdakiler dahil 6.000'den fazla işlev ve yöntem uygulamaktadır:Bu bağlamaları otomatik olarak oluşturmak için Phil Thompson, diğer projelerde de kullanılan SIP aracını geliştirmiştir.Ağustos 2009'da, Qt araç kitinin o zamanki sahibi olan Nokia, benzer işlevsellik sağlayan PySide 'ı piyasaya sürmüştür. Ancak, LGPL uyarınca, Riverbank Computing ile lisans koşullarını alternatif bir lisans olarak LGPL'yi içerecek şekilde değiştirmek için bir anlaşmaya varamamıştır.QtCore modülü temel GUI olmayan sınıfları içermektedir. Ayrıca, QtCore modülü, olay döngüsünü (event loop) ve Qt'nin signal-slot mekanizmasını içermektedir. Ayrıca, Unicode için platformdan bağımsız soyutlamalar, iş parçacıkları, eşlenmiş dosyalar, paylaşılan bellek, normal ifadeler ve kullanıcı ve uygulama ayarları içeriyordur.QtGui modülü, GUI sınıflarının çoğunu içermektedir. Bunlar, model–view–controller (model–view–controller) tasarım modeline dayalı bir table, tree ve list sınıflarını içermektedir.QtNetwork modülü, UDP ve TCP istemcileri ve sunucuları yazmak için sınıflar içermektedir. FTP ve HTTP istemcilerini uygulayan ve DNS aramalarını destekleyen sınıfları içermektedir. Ağ olayları, olay döngüsüyle bütünleştirilerek ağa bağlı uygulamaların geliştirilmesini çok kolaylaştırmaktadır.QtOpenGL modülü, PyQt uygulamalarında 3B grafiklerin işlenmesinde OpenGL'nin kullanılmasını sağlayan sınıfları içermektedir.QtSql modülü, açık kaynaklı ve tescilli SQL veritabanları ile entegre olan sınıfları içermektedir.GUI sınıflarıyla kullanılabilen veritabanı tabloları için düzenlenebilir veri modelleri içermektedir.Ayrıca bir SQLite uygulamasını da içermektedir.QtSvg modülü, SVG dosyalarının içeriğini görüntülemek için sınıflar içermektedir. SVG 1.2 Tiny'nin statik özelliklerini desteklemektedir.QtMultimedia modülü, düşük seviyeli multimedya işlevselliğini uygulamaktadır. Ayrıca, uygulama geliştiricileri normalde fonon modülünü kullanır.QtDesigner modülü, Qt Designer'ın PyQt kullanılarak genişletilmesine izin veren sınıfları içermektedir.Qt modülü, yukarıda açıklanan tüm modüllerde bulunan sınıfları tek bir modülde birleştirmektedir. Bu, hangi temel modülün belirli bir sınıfı içerdiği konusunda endişelenmenize gerek olmaması avantajına sahiptir. Dezavantajı, Qt framwork'ünün tamamını yüklemesi yani bir uygulamanın bellek miktarını artırmasıdır. Bu birleştirilmiş modülü veya tek tek bileşen modüllerini kullanmak kişisel zevkinize bağlıdır.Uic modülü, Qt Designer tarafından oluşturulan ve bir grafik kullanıcı ara yüzünün tamamını veya bir kısmını açıklayan XML dosyalarının işlenmesi için destek uygulamaktadır.PyQt sürüm 4, hem Qt 4 hem de Qt 5 ile çalışır. PyQt sürüm 5, yalnızca Qt sürüm 5'i destekler ve Qt 5'te kullanımdan kaldırılan özellikler için desteği bırakır.PyQt, Python'un GUI programlama seçeneklerinden biridir. Popüler alternatifler olarak PySide  (resmi destek ve daha liberal bir lisansla Qt bağlayıcılığı), PyGTK , wxPython , Kivy  ve Tkinter (Python ile birlikte gelir) örnek verilebilmektedir.