İçeriğe atla

Pyqt

Pyqt
Qt Designer
Geliştirici(ler)Riverbank Computing
Güncel sürüm5.15.4 / 10 Mart 2021 (3 yıl önce) (2021-03-10)[1]
Programlama diliC++ / Python[2]
İşletim sistemiCross-platform
TürGUI araç seti
LisansGNU GPL and commercial
Resmî sitesiriverbankcomputing.com

PyQt, bir Python eklentisi olarak uygulanan, platformlar arası GUI araç seti Qt'nin bir Python bağlantısıdır.

PyQt, İngiliz Riverbank Computing[3] firması tarafından geliştirilmiş ücretsiz bir yazılımdı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:

  • Önemli bir GUI widget setidir.
  • SQL veri tabanlarına erişim sınıflarına sahiptir (ODBC, MySQL, PostgreSQL, Oracle, SQLite)
  • QScintilla, Scintilla tabanlı zengin metin düzenleyici gerecidir.
  • Bir veri tabanından otomatik olarak doldurulan verilere duyarlı pencere öğeleridir.
  • XML ayrıştırıcıdır.
  • SVG desteği sağlamaktadır
  • Windows'a ActiveX denetimlerini katmak için sınıflar sunmaktadır (yalnızca ticari sürümde)[4]

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 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi.'ı 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.

PyQt simge

PyQt ana bileşenleri

PyQt4 aşağıdaki Python modüllerini içermektedir:

  • 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[5] 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 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi.(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 özel mülk 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.
  • QtXml modülü, Qt'nin XML ayrıştırıcısına SAX 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi. ve DOM arayüzlerini uygulamaktadır.
  • 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.[6]

PyQt5 aşağıdaki Python modüllerini içermektedir:

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

Versiyonlar

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[7] ve Qt 5'te kullanımdan kaldırılan özellikler için desteği bırakır.

Hello World örneği

Aşağıdaki kod, ekranda küçük bir pencere göstermektedir.

PyQt4

KDE Plazma 4'teki sonuç
#! /usr/bin/env python3
# Character Encoding: UTF-8
#
# Here we provide the necessary imports.
# The basic GUI widgets are located in QtGui module. 
import sys
from PyQt4.QtGui import QApplication, QWidget

# Every PyQt4 application must create an application object.
# The application object is located in the QtGui module.
app = QApplication(sys.argv)

# The QWidget widget is the base class of all user interface objects in PyQt4.
# We provide the default constructor for QWidget. The default constructor has no parent.
# A widget with no parent is called a window. 
root = QWidget()

root.resize(320, 240)  # The resize() method resizes the widget.
root.setWindowTitle("Hello, World!")  # Here we set the title for our window.
root.show()  # The show() method displays the widget on the screen.

sys.exit(app.exec_())  # Finally, we enter the mainloop of the application.

PyQt5

#! /usr/bin/env python3
# Character Encoding: UTF-8
#
# Here we provide the necessary imports.
# The basic GUI widgets are located in QtWidgets module. 
import sys
from PyQt5.QtWidgets import QApplication, QWidget

# Every PyQt5 application must create an application object.
# The application object is located in the QtWidgets module.
app = QApplication(sys.argv)

# The QWidget widget is the base class of all user interface objects in PyQt5.
# We provide the default constructor for QWidget. The default constructor has no parent.
# A widget with no parent is called a window. 
root = QWidget()

root.resize(320, 240)  # The resize() method resizes the widget.
root.setWindowTitle("Hello, World!")  # Here we set the title for our window.
root.show()  # The show() method displays the widget on the screen.

sys.exit(app.exec_())  # Finally, we enter the mainloop of the application.

PyQt kullanan önemli uygulamalar

  • Anki 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi., aralıklı tekrarlı bir bilgi kartı programı
  • Calibre, bir E-kitap yönetim uygulaması
  • Dropbox, bir dosya barındırma hizmeti
  • Eric Python IDE
  • fman, çapraz platform dosya yöneticisi
  • Frescobaldi, LilyPond müzik dosyaları için bir puan düzenleyici
  • Kodos 7 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi., bir Python Regular expression hata ayıklayıcısı (debugger)
  • Leo, anahat ve okuryazar bir programlama editörü
  • Ninja-IDE 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi., genişletilebilir bir açık kaynaklı Python IDE'si.
  • OpenLP 28 Nisan 2021 tarihinde Wayback Machine sitesinde arşivlendi., açık kaynaklı bir şarkı sözü projeksiyon programı
  • OpenShot, bir video düzenleme programı
  • Orange 11 Mayıs 2020 tarihinde Wayback Machine sitesinde arşivlendi., bir veri madenciliği ve görselleştirme çerçevesi
  • Puddletag, açık kaynaklı, platformlar arası bir ID3 etiket düzenleyicisi
  • QGIS, ücretsiz bir yazılım masaüstü Coğrafi Bilgi Sistemleri (GIS) uygulaması
  • qt-recordMyDesktop, recordMyDesktop için bir Qt4 ön ucu
  • Spyder, bir Python veri bilimi IDE'si
  • TortoiseHg, Mercurial kaynak yönetimi programı (Hg) için bir grafik arayüz programı
  • Veusz 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi., bilimsel bir komplo uygulaması

Ayrıca bakınız

PyQt, Python'un GUI programlama seçeneklerinden biridir. Popüler alternatifler olarak PySide 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi. (resmi destek ve daha liberal bir lisansla Qt bağlayıcılığı), PyGTK 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi., wxPython 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi., Kivy 24 Mayıs 2021 tarihinde Wayback Machine sitesinde arşivlendi. ve Tkinter (Python ile birlikte gelir) örnek verilebilmektedir.

Kaynakça

  1. ^ "Arşivlenmiş kopya". 24 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Mayıs 2021. 
  2. ^ "PyQt4 Download". Riverbankcomputing. 2010. 1 Mayıs 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Nisan 2010. 
  3. ^ "PyQt-Riverbank". 19 Şubat 2006 tarihinde kaynağından arşivlendi. 
  4. ^ "Python Wiki". 8 Kasım 2005 tarihinde kaynağından arşivlendi. 
  5. ^ "PyQt-Yapay zeka labs". 24 Mayıs 2021 tarihinde kaynağından arşivlendi. 
  6. ^ ""Riverbank | Software | PyQt | What is PyQt?"". 2 Mayıs 2008 tarihinde kaynağından arşivlendi. 
  7. ^ "PyQt nedir?". 2 Mayıs 2008 tarihinde kaynağından arşivlendi. 

İlgili Araştırma Makaleleri

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">Symbian (işletim sistemi)</span> mobil işletim sistemi

Symbian, Symbian Vakfı tarafından cep telefonları ve bilgisayarları gibi çeşitli taşınabilir iletişim aygıtları için geliştirilmiş ve 2000'li yıllarda yaygın olarak kullanılmış bir işletim sistemiydi. Symbian, başlangıçta Symbian Ltd tarafından 1997'de PDA'lar için kapalı kaynaklı bir işletim sistemi olarak geliştirildi. Symbian OS, Psion'un EPOC sisteminin soyundan geldi ve çoğunlukla ARM mimarisi işlemcileri üzerinde çalıştı, ancak Japonya da üretilen cihazlarda çoğunlukla Super-H mimarisine sahip cihazlarda kullnıldı ve yayınlanmamış bir x86 bağlantı noktasıda mevcuttu. Symbian, Nokia, Samsung, Motorola, Sony Ericsson gibi birçok büyük cep telefonu markası tarafından kullanılıyordu. Akıllı telefon endüstrisini kuran öncü olarak, akıllı telefonların sınırlı kullanımda olduğu, Android tarafından geçildiğinde, 2010'un sonuna kadar dünya çapında en popüler akıllı telefon işletim sistemiydi.

<span class="mw-page-title-main">Go (programlama dili)</span> programlama dili

Go, statik tipli, derlenen, yüksek seviyeli bir programlama dilidir. Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google'da 2007 yılından itibaren geliştirilmeye başlanmıştır. Sözdizimi C'ye benzerdir fakat hafıza erişimi güvenlidir, kullanılmayan hafıza kaynakları sisteme otomatik olarak geri verilir, interface veri tipleri sayesinde yapısal tip sistemini destekler ve eşzamanlı (concurrent) çalışan işlemlerin (process) ortak hafıza kullanabilmelerinin yanında birbiriyle iletişim kurmalarını sağlayan ögelere sahiptir. Eski alan adı golang.org olduğundan sık sık golang ismiyle anılır ama asıl adı Go'dur.

<span class="mw-page-title-main">HTML5</span> web programlama dili HTMLnin en güncel sürümü

HTML5, İnternet'in çekirdek teknolojilerinden HTML işaretleme standardının beşinci sürümüdür. Internet Explorer, Mozilla Firefox ve Opera tarayıcılarının güncel sürümleri tarafından kısmen desteklenmektedir. Kısaca H5 Google Chrome ve Safari tarayıcılarının güncel sürümleri üzerinde deneme aşamasında da olsa çok daha iyi bir şekilde çalışmaktadır. Günümüzde kullanılan HTML 4.1 sürümü, CSS desteğiyle ne kadar düzenli ve sağlam bir yapıda kodlanırsa kodlansın, yine de fazladan yazılan kodların fonksiyonelliğini bozduğu bilinmektedir. Bu yüzden HTML5, bu ihtiyaçları karşılamak adına geliştirilmeye başlanmıştır. Video paylaşım sitesi YouTube, deneme aşamasında HTML5'i kullanıcılarına sunmaktadır.

<span class="mw-page-title-main">Qt (çalışma alanı)</span>

Qt, birden çok platformu destekleyen bir grafiksel kullanıcı arayüzü geliştirme araç takımıdır. Genellikle GUI programları geliştirmek için kullanılsa da gelişmiş kütüphanesi GUI bileşenlerinin dışında birçok araç içermektedir. Qt, en çok KDE masaüstü ortamında, Opera ağ tarayıcısında ve Skype anlık mesajlaşma programlarında kullanılmasıyla bilinir.

<span class="mw-page-title-main">MATLAB</span>

MATLAB, çok paradigmalı sayısal hesaplama yazılımı ve dördüncü nesil programlama dilidir. Özel mülk bir programlama dili olan MATLAB, MathWorks tarafından geliştirilmektedir. MATLAB kullanıcıya, matris işleme, fonksiyon ve veri çizme, algoritma uygulama, kullanıcı arayüzü oluşturma, C, C++, Java ve Fortran gibi diğer dillerde yazılmış programlarla arabağlama imkânı tanır.

<span class="mw-page-title-main">Metin tabanlı kullanıcı arayüzü</span> bir metin ekranına çıktı vermeye veya onu kontrol etmeye dayalı arabirim türü

Metin tabanlı kullanıcı arayüzü, metinsel kullanıcı arayüzü veya terminal kullanıcı arabirimi olarak da adlandırılır, grafik kullanıcı arayüzlerinin (GUI) icadından bir süre sonra ortaya çıkan ve onu grafik kullanıcı arayüzünden ayırt etmek için türetilen yeni bir terimdir. TUI'de bilgisayar grafikleri metin kipinde görüntülenir. Gelişmiş bir TUI, GUI'ler gibi tüm ekran alanını kullanabilir ve fare ve diğer girişleri kabul edebilir.

<span class="mw-page-title-main">RocksDB</span>

RocksDB, anahtar / değer verileri için yüksek performanslı yerleşik bir veritabanıdır. Çoklu merkezi işlem birimi (CPU) çekirdeğinden yararlanmak ve giriş / çıkış bağlı iş yükleri için katı hal sürücüleri (SSD) gibi hızlı depolamayı verimli bir şekilde kullanmak üzere optimize edilmiş, Google tarafından geliştirilen LevelDB'nin bir çatalıdır. Günlük yapılı birleştirme ağacı veri yapısına dayanır.

<span class="mw-page-title-main">Python Paket Dizini</span>

Python Paket Dizini, PyPI olarak kısaltılır ve Peynir Dükkanı olarak da bilinir, Python için resmi bir üçüncü taraf yazılım deposudur. Perl için CPAN deposuna ve R için CRAN deposuna benzer. PyPI, bir hayır kurumu olan Python Software Foundation tarafından işletilmektedir. Bazı paket yöneticileri, pip dahil, PyPI'yi paketler ve bağımlılıkları için varsayılan kaynak olarak kullanır.

<span class="mw-page-title-main">FreeCAD</span>

FreeCAD, özgür ve açık kaynaklı genel amaçlı parametrik 3B bilgisayar destekli tasarım (CAD) modelleyici ve sonlu elemanlar yöntemi (FEM) destekli bir yapı bilgi modelleme (BIM) yazılımıdır. FreeCAD, makine mühendisliği ürün tasarımı için tasarlanmıştır; ancak aynı zamanda mimari veya elektrik mühendisliği gibi mühendislik çevresinde daha geniş bir kullanım yelpazesini kapsar. Yazılımın özgür doğası nedeniyle kullanıcılar yazılımın işlevselliği Python programlama dili kullanarak gönüllüler ve kullanıcılar tarafından genişletilebilir.

ARINC 661, Kokpit Ekran Sistemini (CDS) tanımlanmasını; kullanıcı uygulaması ve CDS arasındaki haberleşmeyi standartize etmeyi amaçlayan bir aviyonik standarttır. GUI tanımı tamamen ikili Definition Files (DF) 'de tarif edilmektedir.

<span class="mw-page-title-main">NumPy</span>

NumPy, Python programlama dili için büyük, çok boyutlu dizileri ve matrisleri destekleyen, bu diziler üzerinde çalışacak üst düzey matematiksel işlevler ekleyen bir kitaplıktır. NumPy'nin atası Numeric, ilk olarak Jim Hugunin tarafından diğer birkaç geliştiricinin katkılarıyla oluşturuldu. 2005 yılında Travis Oliphant, Numarray'in özelliklerini kapsamlı değişikliklerle Numeric'e dahil ederek NumPy'yi yarattı.

3D Slicer , görüntü analizi ve bilimsel görselleştirme için ücretsiz ve açık kaynaklı bir yazılım paketidir. Dilimleyici, otizm, multipl skleroz, sistemik lupus eritematozus, prostat kanseri, akciğer kanseri, meme kanseri, şizofreni, ortopedik biyomekanik, KOAH, kardiyovasküler hastalık ve beyin cerrahisi dahil olmak üzere çeşitli tıbbi uygulamalarda kullanılmaktadır.

<span class="mw-page-title-main">Falkon</span>

Falkon, ücretsiz ve açık kaynaklı bir web tarayıcısıdır. Chromium tarayıcı çekirdeği için bir sarıcı olan Qt WebEngine üzerine inşa edilmiştir.

<span class="mw-page-title-main">Ultimate++</span>

Ultimate++ -aynı zamanda Ultimatepp, U++ veya Upp olarak da bilinir - C++ özelliklerinden kapsamlı bir şekilde yararlanarak tipik masaüstü uygulamalarının kod karmaşıklığını azaltmayı amaçlayan bir C++ hızlı uygulama geliştirme programıdır. Bu yazılım ile oluşturulan programlar, platforma özel kod yazmaya gerek kalmadan birden fazla işletim sistemi ve donanım mimarisi üzerinde çalışabilir.

<span class="mw-page-title-main">Electron (yazılım kütüphanesi)</span>

Electron, GitHub tarafından geliştirilen ve bakımı yapılan özgür ve açık kaynaklı bir yazılım iskeletidir. Çerçeve, Chromium tarayıcı motorunun bir çeşidi kullanılarak oluşturulan web teknolojilerini ve Node.js çalışma ortamını kullanarak masaüstü uygulamaları oluşturmak için tasarlanmıştır. Ek olarak, Düğüm hizmetleriyle yerel entegrasyon ve süreçler arası iletişim modülü gibi şeylere izin vermek için çeşitli API'ler de kullanır.

<span class="mw-page-title-main">Tk (yazılım)</span>

Tk, birçok programlama dilinde bir grafik kullanıcı arabirimi (GUI) oluşturmak için GUI widget'larının temel öğelerinden oluşan bir kitaplık sağlayan ücretsiz ve açık kaynaklı, çapraz platform bir widget araç takımıdır.

mpv (medya oynatıcısı)

mpv, MPlayer, mplayer2 ve FFmpeg tabanlı özgür ve açık kaynaklı bir medya oynatıcı yazılımıdır. Unix benzeri işletim sistemleri ve Microsoft Windows dahil olmak üzere çeşitli işletim sistemlerinde çalışır ve mpv-android adlı bir Android uyarlamasına sahiptir. ARM, PowerPC, x86/IA-32, x86-64 ve MIPS mimarisi üzerinde çalışır yani çapraz platformdur.

<span class="mw-page-title-main">Matplotlib</span>

Matplotlib, Python programlama dili ve sayısal matematik uzantısı NumPy için bir çizim kitaplığıdır. Tkinter, wxPython, Qt veya GTK gibi genel amaçlı GUI araç setlerini kullanan uygulamalara grafikleri yerleştirmek için nesne yönelimli bir API sağlar. Ayrıca, kullanılması önerilmese de, MATLAB'ınkine çok benzeyecek şekilde tasarlanmış, bir durum makinesine dayalı bir yordamsal "plab" arabirimi vardır. SciPy, Matplotlib'i kullanır.

<span class="mw-page-title-main">Scapy</span> Python tabanlı etkileşimli ağ paketi değiştirme programı ve kütüphanesi

Scapy, bilgisayar ağları için bir paket manipülasyon aracıdır, orijinal olarak Philippe Biondi tarafından Python dilinde yazılmıştır. Ağ paketlerini taklit edebilir veya kodlarını çözebilir, bunları ağa gönderebilir, yakalayabilir ve istekler ile yanıtları eşleştirebilir. Ayrıca tarama, ağ yolu izleme, sondajlama, birim testleri, saldırılar ve ağ keşfi gibi görevleri de yerine getirebilir.