PyQt - PyQt

PyQt
Python ja Qt.svg
Näyttökuva-qt-designer-qwebview.png
Kehittäjä (t) Riverbank Computing
Vakaa vapautus
5.15.4 / 10. maaliskuuta 2021 ; 3 kuukautta sitten ( 2021-03-10 )
Kirjoitettu C ++ / Python
Käyttöjärjestelmä Monitasoinen
Lisenssi GNU GPL ja kaupallinen
Verkkosivusto riverbankcomputing.com

PyQt on Python sitova on cross-platform GUI Toolkit Qt , toteutettu Python plug-in . PyQt on britti Riverbank Computingin kehittämä ilmainen ohjelmisto . Se on saatavana samoin ehdoin kuin Qt-versiot, jotka ovat vanhempia kuin 4.5; tämä tarkoittaa erilaisia ​​lisenssejä, mukaan lukien GNU General Public License (GPL) ja kaupallinen lisenssi, mutta ei GNU Lesser General Public License (LGPL). PyQt tukee Microsoft Windowsia sekä useita UNIX- makuja , mukaan lukien Linux ja MacOS (tai Darwin) .

PyQt toteuttaa noin 440 luokkaa ja yli 6000 toimintoa ja menetelmää, mukaan lukien:

Näiden sidosten luomiseksi Phil Thompson kehitti SIP- työkalun , jota käytetään myös muissa projekteissa.

Elokuussa 2009 Qt-työkalupaketin silloiset omistajat Nokia julkaisi PySiden , joka tarjoaa samanlaisen toiminnallisuuden, mutta LGPL : n nojalla , kun se ei ole päässyt sopimukseen Riverbank Computingin kanssa muuttamaan sen käyttöehtoja sisällyttämään LGPL vaihtoehtoiseksi lisenssiksi.

PyQt-pääkomponentit

Vaihtoehtoinen PyQt-logo

PyQt4 sisältää seuraavat Python-moduulit.

  • QtCore moduuli sisältää ydin ei-GUI luokat, kuten tapahtuma silmukka ja Qt: n signaalin ja raon avulla. Se sisältää myös alustasta riippumattomat abstraktit Unicodelle , ketjut, yhdistetyt tiedostot, jaetun muistin, säännölliset lausekkeet sekä käyttäjän ja sovelluksen asetukset.
  • QtGui moduuli sisältää suurimman osan GUI luokkiin. Näihin kuuluu useita taulukko-, puu- ja luetteloluokkia mallinäkymän ja ohjaimen suunnittelumallin perusteella. Mukana on myös hienostunut 2D- kangaswidget, joka pystyy tallentamaan tuhansia kohteita, mukaan lukien tavalliset widgetit.
  • QtNetwork moduuli sisältää luokat kirjoittamiseen UDP ja TCP asiakkaiden ja palvelinten. Se sisältää luokkia, jotka toteuttavat FTP- ja HTTP- asiakkaita ja tukevat DNS- hakuja. Verkkotapahtumat on integroitu tapahtumasilmukkaan, joten verkotettujen sovellusten kehittäminen on erittäin helppoa.
  • QtOpenGL moduuli sisältää luokkia, jotka mahdollistavat käytön OpenGL teurasjätteiden 3D grafiikan PyQt sovelluksissa.
  • QtSql moduuli sisältää luokkia, jotka integroituvat avoimen lähdekoodin ja omaan SQL-tietokantojen. Se sisältää muokattavat tietomallit tietokantataulukoille, joita voidaan käyttää GUI-luokkien kanssa. Se sisältää myös SQLiten toteutuksen .
  • QtSvg moduuli sisältää luokat näytetään sisältöä SVG-tiedostoja. Se tukee SVG 1.2 Tiny -järjestelmän staattisia ominaisuuksia.
  • QtXml moduuli työkoneiden SAX ja DOM rajapintoja Qt: n XML.
  • QtMultimedia moduuli työkoneiden matalan tason multimediatoiminto. Sovelluskehittäjät käyttävät tavallisesti phonon- moduulia.
  • QtDesigner moduuli sisältää luokat, joiden avulla Qt Designer voidaan laajentaa käyttämällä PyQt.
  • Qt moduuli vahvistaa luokkiin sisältyvät kaikki yllä kuvattujen moduulien yhteen moduuliin. Tällä on se etu, että sinun ei tarvitse huolehtia siitä, mikä taustamoduuli sisältää tietyn luokan. Sillä on haitta, että se lataa koko Qt-kehyksen ja lisää siten sovelluksen muistijalanjälkeä. Käytätkö tätä yhdistettyä moduulia vai yksittäisiä komponenttimoduuleja, on henkilökohtainen maku.
  • UIC moduuli tukipaketista käsittelyyn XML luomia Qt Designer jotka kuvaavat kokonaan tai osittain graafinen käyttöliittymä. Se sisältää luokat, jotka lataavat XML-tiedoston ja tekevät sen suoraan, ja luokat, jotka luovat Python-koodin XML-tiedostosta myöhempää suoritusta varten.

PyQt5 sisältää seuraavat Python-moduulit:

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

Versiot

PyQt-versio 4 toimii sekä Qt 4: n että Qt 5: n kanssa . PyQt-versio 5 tukee vain Qt-versiota 5 ja hylkää Qt 5: ssä vanhentuneiden ominaisuuksien tuen.

Hei maailma -esimerkki

Alla oleva koodi näyttää pienen ikkunan ruudulla.

PyQt4

#! /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.

Merkittävät sovellukset, jotka käyttävät PyQt: tä

Katso myös

  • PyGTK (Python-kääreet GTK: lle)
  • PySide (vaihtoehtoinen Python-kääre Qt-työkalupakille)
  • wxPython (Python-kääre wx-widget-kokoelmalle)
  • Kivy
  • Tkinter (mukana Pythonissa)

Viitteet

Lisälukemista

Ulkoiset linkit