PyQt - PyQt - Wikipedia
![]() | |
![]() | |
Vývojáři | Riverbank Computing |
---|---|
Stabilní uvolnění | 5.15.2 / 23. listopadu 2020[1] |
Napsáno | C ++ / Krajta[2] |
Operační systém | Cross-platform |
Licence | GNU GPL a komerční |
webová stránka | riverbankcomputing.com |
PyQt je Krajta vazba z napříč platformami GUI sada nástrojů Qt, implementováno jako Python zapojit. PyQt je svobodný software vyvinutý společností britský firma Riverbank Computing. Je k dispozici za podobných podmínek jako verze Qt starší než 4.5; to znamená řadu licencí včetně GNU General Public License (GPL) a komerční licence, ale nikoli GNU Lesser General Public License (LGPL).[3] PyQt podporuje Microsoft Windows stejně jako různé příchutě UNIX, počítaje v to Linux a MacOS (nebo Darwin).[4]
PyQt implementuje kolem 440 tříd a více než 6 000 funkcí a metod[5] počítaje v to:
- podstatná sada Widgety GUI
- třídy pro přístup SQL databáze (ODBC, MySQL, PostgreSQL, Věštec, SQLite )[6]
- QScintilla, Jiskra - widget editoru rich textového editoru
- datové widgety, které se automaticky naplní z databáze
- an XML analyzátor
- SVG Podpěra, podpora
- třídy pro vkládání ActiveX ovládací prvky ve Windows (pouze v komerční verzi)[7]
Phil Thompson vyvinul nástroj pro automatické generování těchto vazeb SIP, který se používá také v jiných projektech.
V srpnu 2009 Nokia, tehdejší vlastníci sady nástrojů Qt, propuštěni PySide, poskytující podobné funkce, ale pod LGPL,[8] poté, co se nepodařilo dosáhnout dohody s Riverbank Computing[9] změnit své licenční podmínky tak, aby zahrnovalo LGPL jako alternativní licenci.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Python_and_Qt_2.svg/160px-Python_and_Qt_2.svg.png)
Hlavní komponenty PyQt
PyQt4 obsahuje následující moduly Pythonu.
- The QtCore modul obsahuje základní třídy bez GUI, včetně smyčky událostí a mechanismu signálu a slotu Qt. Zahrnuje také abstrakce nezávislé na platformě pro Unicode vlákna, mapované soubory, sdílená paměť, regulární výrazy a nastavení uživatele a aplikace.
- The QtGui modul obsahuje většinu tříd GUI. Patří mezi ně řada tříd tabulek, stromů a seznamů na základě model – pohled – řadič návrhový vzor. K dispozici je také sofistikovaný 2D plátno widget schopný uložit tisíce položek, včetně běžných widgetů.
- The QtNetwork modul obsahuje třídy pro psaní UDP a TCP klienty a servery. Zahrnuje třídy, které implementují FTP a HTTP klienti a podpora DNS vyhledávání. Síťové události jsou integrovány do smyčky událostí, což usnadňuje vývoj síťových aplikací.
- The QtOpenGL modul obsahuje třídy, které umožňují použití OpenGL ve vykreslování 3D grafika v aplikacích PyQt.
- The QtSql modul obsahuje třídy, které se integrují s open-source a proprietárními databázemi SQL. Zahrnuje upravitelné datové modely pro databázové tabulky, které lze použít s třídami GUI. Zahrnuje také implementaci SQLite.
- The QtSvg modul obsahuje třídy pro zobrazení obsahu souborů SVG. Podporuje statické vlastnosti SVG 1.2 Tiny.
- The QtXml modul implementuje SAXOFON a DOM rozhraní k analyzátoru XML Qt.
- The QtMultimedia modul implementuje multimediální funkce na nízké úrovni. Vývojáři aplikací by normálně používali telefon modul.
- The QtDesigner modul obsahuje třídy, které umožňují rozšíření Qt Designer pomocí PyQt.
- The Qt modul konsoliduje třídy obsažené ve všech výše popsaných modulech do jednoho modulu. To má tu výhodu, že se nemusíte starat o to, který základní modul obsahuje konkrétní třídu. Má tu nevýhodu, že načítá celý rámec Qt, čímž zvyšuje paměťovou stopu aplikace. Ať už používáte tento konsolidovaný modul nebo jednotlivé moduly komponent, záleží na osobním vkusu.
- The uic modul implementuje podporu pro zacházení se soubory XML vytvořenými Qt Designer, které popisují celé nebo část grafického uživatelského rozhraní. Zahrnuje třídy, které načtou soubor XML a vykreslí ho přímo, a třídy, které generují kód Pythonu ze souboru XML pro pozdější provedení.[10]
PyQt5 obsahuje následující moduly Pythonu:
- Modul QtQml
- Modul QtQtuick
- Modul QtCore
- Modul QtGui
- Modul QtPrintSupport
- Modul QtWidgets
- Modul QGLContext
- Modul QGLFormat
- Modul QGLWidget
- Modul QtWebKit
- Modul QtWebKitWidgets
Verze
PyQt verze 4 funguje s oběma Qt 4 a Qt 5. PyQt verze 5 podporuje pouze Qt verze 5,[4] a zruší podporu pro funkce, které jsou v Qt 5 zastaralé.[11]
Příklad Hello World
Níže uvedený kód ukazuje malé okno na obrazovce.
PyQt4
![](http://upload.wikimedia.org/wikipedia/commons/6/6d/PyQt_screen.png)
1#! / usr / bin / env python3 2# Kódování znaků: UTF-8 3# 4# Zde poskytujeme nezbytné dovozy. 5# Základní widgety GUI jsou umístěny v modulu QtGui. 6import sys 7z PyQt4.QtGui import QAplikace, QWidget 8 9# Každá aplikace PyQt4 musí vytvořit objekt aplikace.10# Objekt aplikace je umístěn v modulu QtGui.11aplikace = QAplikace(sys.argv)1213# Widget QWidget je základní třídou všech objektů uživatelského rozhraní v PyQt4.14# Poskytujeme výchozí konstruktor pro QWidget. Výchozí konstruktor nemá žádného rodiče.15# Widget bez rodiče se nazývá okno. 16vykořenit = QWidget()1718vykořenit.změnit velikost(320, 240) # Metoda resize () změní velikost widgetu.19vykořenit.setWindowTitle("Ahoj světe!") # Zde nastavíme název našeho okna.20vykořenit.ukázat() # Metoda show () zobrazí widget na obrazovce.2122sys.výstup(aplikace.exec_()) # Nakonec vstoupíme do hlavní smyčky aplikace.
PyQt5
1#! / usr / bin / env python3 2# Kódování znaků: UTF-8 3# 4# Zde poskytujeme nezbytné dovozy. 5# Základní widgety GUI jsou umístěny v modulu QtWidgets. 6import sys 7z PyQt5.QtWidgety import QAplikace, QWidget 8 9# Každá aplikace PyQt5 musí vytvořit objekt aplikace.10# Objekt aplikace je umístěn v modulu QtWidgets.11aplikace = QAplikace(sys.argv)1213# Widget QWidget je základní třídou všech objektů uživatelského rozhraní v PyQt5.14# Poskytujeme výchozí konstruktor pro QWidget. Výchozí konstruktor nemá žádného rodiče.15# Widget bez rodiče se nazývá okno. 16vykořenit = QWidget()1718vykořenit.změnit velikost(320, 240) # Metoda resize () změní velikost widgetu.19vykořenit.setWindowTitle("Ahoj světe!") # Zde nastavíme název našeho okna.20vykořenit.ukázat() # Metoda show () zobrazí widget na obrazovce.2122sys.výstup(aplikace.exec_()) # Nakonec vstoupíme do hlavní smyčky aplikace.
Pozoruhodné aplikace, které používají PyQt
- Anki, program s kartami s mezerami v opakování
- Ráže, aplikace pro správu elektronických knih
- Dropbox, služba hostování souborů
- Eric Python IDE
- fman, správce souborů napříč platformami
- Frescobaldi, editor skóre pro LilyPond hudební soubory
- Kodos, a Krajta Regulární výraz Debugger
- Lev, editor a gramotný programátorský editor
- Ninja-IDE, rozšiřitelný open-source Krajta IDE
- OpenLP, program projekce textů open-source
- OpenShot, program pro střih videa
- oranžový, rámec pro dolování a vizualizaci dat
- Puddletag, open-source, multiplatformní editor ID3 tagů
- QGIS, bezplatná aplikace pro stolní počítače Geografické informační systémy (GIS)
- qt-recordMyDesktop, rozhraní Qt4 pro recordMyDesktop
- Spyder, a Krajta datová věda IDE
- ŽelvaHg, grafické rozhraní pro program správy zdrojů Mercurial (Hg)
- Veusz, vědecká aplikace pro spiknutí
Viz také
PyQt je jednou z možností Pythonu pro programování GUI. Populární alternativy jsou PySide (vazba Qt s oficiální podporou a liberálnější licencí), PyGTK, wxPython, Kivy a Tkinter (který je dodáván s Pythonem).
Reference
- ^ https://pypi.org/project/PyQt5/#history
- ^ "Stažení PyQt4". Výpočet na břehu řeky. 2010. Citováno 2010-04-19.
- ^ "Riverbank | Komerční | Časté dotazy k licenci". Riverbankcomputing.com. Citováno 2015-06-24.
- ^ A b „Co je to PyQt?“. Riverbank Computing. Citováno 2014-09-18.
- ^ „PyQt v4 - Vazby Pythonu pro Qt v4“. Výpočet na břehu řeky. Archivovány od originál dne 2008-04-29. Citováno 2010-04-17.
- ^ „Reference třídy QSqlDatabase“. Pyqt.sourceforge.net. Citováno 2014-09-25.
- ^ PythonInfo Wiki
- ^ "PySide byl vydán - PySide - Python pro Qt". Pyside.org. 18. 8. 2009. Archivovány od originál dne 25. 10. 2009. Citováno 2009-09-03.
- ^ "FAQ - PySide - Python pro Qt". Pyside.org. Citováno 2009-09-03.
- ^ "Riverbank | Software | PyQt | Co je PyQt?". Riverbankcomputing.co.uk. Citováno 2010-04-15.
- ^ "Rozdíly mezi PyQt4 a PyQt5", PyQt 5.3.2 Referenční příručka
Další čtení
- Willman, Joshua (2020), Počínaje PyQt - praktický přístup k programování GUI (1. vyd.), Apress, str. 440, ISBN 978-1-4842-5856-9
- Summerfield, Mark (28. října 2007), Rychlé programování GUI s Pythonem a Qt (zahrnuje PyQt4) (1. vyd.), Prentice Hall, str. 648, ISBN 978-0-13-235418-9
- Rempt, Boudewijn (2002), Programování GUI s Pythonem: QT Edition (zahrnuje PyQt3), OpenDocs, archivovány z originál dne 2010-04-09