Chii chinonzi PyQt uye nei iri yakanakisa sarudzo yekugadzira graphical interfaces nePython?

Kugadziridza kwekupedzisira: 28 de julio de 2025
  • PyQt inobatanidza Python kune ine simba Qt graphical framework, ichikutendera iwe kugadzira nyanzvi dzedesktop application.
  • Iyo inokutendera iwe kuti ugadzire maratidziro ekuona neQt Mugadziri uye woatonga nePython nekuda kweakasanganisirwa mamodule uye zvinoshandiswa.
  • Iyo inopa muchinjika-chikuva rutsigiro uye huwandu hwakasiyana hwemajeti, maturusi, uye zvinyorwa zvehunyanzvi kuita kuti kudzidza kuve nyore.

pyqt

Kana iwe uchangotanga nekuvandudza kwekushandisa nePython, ungangove wave kuda kuziva nezve zvishandiso zvinokutendera iwe kugadzira inooneka uye nehunyanzvi graphical interfaces. PyQt ndere, pasina kupokana, rimwe remazita anonzwika zvakanyanya mumunda uyu. Uye kunyangwe paine dzimwe sarudzo, mukurumbira wayo uye kuita kwakasiyana-siyana kunoita kuti ive sarudzo-inofanirwa kuve nesarudzo. Nhasi, tichatsanangura zvakadzama kuti PyQt chii, inoshanda sei, zvayakanakira nezvayakaipira zvichienzaniswa nemamwe maraibhurari, uye mashandisiro ayo makuru, saka une ruzivo rwese usati wasvetuka mukugadzira yako yekutanga kuona application muPython.

Kunzwisisa PyQt uye ecosystem yayo inogona kukuvhurira mikova yakawanda. Munyika yekuvandudza software, kugona graphical interface kusikwa chinhu chakakosheswa kwazvo mune zvese zvemunhu nehunyanzvi mapurojekiti. Uyezve, kunzwisisa hukama hwayo nematekinoroji akaita seQt, PySide, uye dzimwe nzira dzichakubatsira kuita sarudzo dziri nani kana uchisarudza chishandiso chakakodzera.

Chii chinonzi PyQt?

PyQt seti yezvisungo pakati pePython uye inozivikanwa muchinjika-chikuva graphical library Qt.Izvi zvinoreva kuti, nekuda kwePyQt, unogona kushandisa maturusi ane simba eQt uye majeti kubva muzvinyorwa zvako zvePython, uchibatanidza kureruka uye kumhanya kwemutauro uyu nekuita uye kusimba kweQt, iyo mushanduro yayo huru yakarongwa muC ++.

Yakagadzirwa neBritish Riverbank Computing kubva mukupera kwema90s, PyQt inopa bhiriji rekugadzira marudzi ese egraphical mushandisi interface masisitimu anoshanda seWindows, GNU/Linux uye Mac OS X.Kuwanikwa kwayo pasi pemhando dzakasiyana dzerezinesi (GPL, LGPL, uye kutengeserana) yakafarira kutorwa kwayo mune ese emahara software mapurojekiti uye zvirongwa zvekutengesa.

Chii chinonzi Qt uye nei yakakosha kuPyQt?

Qt ari chinhu-yakatarisana, muchinjika-chikuva, yakavhurika-source framework Inonyatso kuzivikanwa nekushanda kwayo, kugadzikana uye kumhanya, sezvainogadzirwa muC ++. Qt inonakidza nekuda kwezvikonzero zvakati wandei: inokutendera iwe kugadzira zvirongwa zvine imwechete kodhi base kune akasiyana masisitimu anoshanda, zvinotora mukana weiyo modularity uye nyore kudzidza kweiyo chinhu-yakatarisana paradigm, uye inopa muunganidzwa wakakura we majeti, maturusi ekugadzira (akadai seQt Mugadziri) uye zvinoshandiswa yekudyidzana nedzimwe nyika, dhatabhesi, network, 2D/3D mifananidzo kana multimedia.

PyQt akazvarwa sePython vhezheni yezvose zvinogoneka.: inopa Python interface kune Qt chimiro, ichibvumira vanogadzira kuwana Qt's yakakura repertoire yemajeti uye zvishandiso pasina kusiya nharaunda yePython. Uyezve, Qt yagara ichitsigirwa nemakambani makuru nenharaunda (Nokia, Digia, The Qt Company), kuve nechokwadi chekuenderera kwayo kushanduka nerutsigiro.

Misiyano pakati pePyQt nedzimwe nzira: PySide, Tkinter, PyGTK, wxPython

Paunenge uchitsvaga kugadzira graphical interfaces muPython, PyQt haisiriyo yega sarudzo, kunyangwe iri imwe yeakazara uye nyanzvi.Zvakakosha kuenzanisa PyQt nemamwe maraibhurari anozivikanwa:

  • pyside: Akazvarwa semhinduro kune zvirambidzo zvekupihwa rezenisi zvePyQt. Yakagadzirwa uye inochengetwa ne Iyo Qt CompanyPySide ndiyo yepamutemo Qt inosunga yePython uye inoshandisa LGPL rezinesi, iyo yakavhurika zvakanyanya kumapurojekiti ekutengesa. Kunyangwe yaimbove kumashure kwePyQt, ikozvino ine inoshanda parity uye yakanakira imwe nzira kana iwe uine hanya nezvekutengesa marezinesi.
  • Tkinter: Ndiyo raibhurari yakavakirwa-mukati muPython yegraphical interfaces. Iyo iri nyore kwazvo uye yakakwana kune ekutanga zvinyorwa uye maGUI. Zvisinei, Iyo inoshaya majeti epamberi uye maturusi ekugadzira ekuona seQt Mugadziri. Yakakwana yekukurumidza mapurojekiti kana prototypes.
  • PyGTK y wxPython: Idzi ndidzo dzimwe nzira dzakanangana nenheyo dzakasiyana (GTK uye wxWidgets) uye vane yavo repertoire yemajeti eplatform uye masitaera. Ivo vanowanzo sarudzirwa mapurojekiti chaiwo kana nekuda kwekuda kweimwe nzvimbo yekuona.
  8 Anoshamisa Tricks Kushandisa Zvinonzwisisika Operators muProgramming

Mukuita, PyQt nePySide zvinosarudzwa kusimudzira hunyanzvi kana kana kutarisa kwepamberi nekushanda kuchidikanwa., nepo Tkinter yakachengeterwa zvinhu zviri nyore.

Rezinesi uye shanduro: chii chaunoda kufunga?

Imwe yemakiyi pakusarudza PyQt ndiyo muenzaniso wayo werezinesi. PyQt inogoverwa pasi peGPL (GNU Public License) uye rezinesi rekutengesa Yakabhadharwa. Izvi zvinoreva kuti mapurojekiti anofanirwa kuve akavhurika sosi kana kubhadhara mubhadharo werezinesi rekutengesa (ikozvino anenge $550). Kana chinangwa chako chiri chekugovera yakavharwa-sosi software kana yezvinangwa zvekutengesa pasina kuburitsa kodhi, iwe unoda iyo yekutengesa vhezheni.

Kune rumwe rutivi, PySide inoshandisa LGPL rezinesi, iyo isingadziviriri uye inobvumira kushandiswa kwayo mune zvekutengeserana zvikumbiro pasina kusunungura kodhi yekodhi, iyo yakaita kuti iwane mukurumbira mumakore achangopfuura, kunyanya inotsigirwa zviri pamutemo neQt Company uye nekuwedzera kusimba kwekodhi nheyo.

Kana dziri shanduro, bazi guru razvino iPyQt6 (yazvino yakagadzikana vhezheni 6.4.2), kunyangwe PyQt5 ichiri kushandiswa zvakanyanya nekuda kwekuenderana kunochengetwa nemapurojekiti apfuura uye mienzaniso inowanikwa paInternet.

Nzira yekuisa PyQt?

Kuisa PyQt munzvimbo yako yekusimudzira iri nyore. Nzira yakajairika yekuisa PyQt5 kana PyQt6 iri kuburikidza nepip, iyo Python package maneja.. Ingomhanya mune yako terminal:

pip install PyQt5

o

pip install PyQt6

Zvichienderana neshanduro yaunoda. Kana iwewo uchida kuva nemidziyo yekuona seQt Designer, unogona kuisa pyqt5-zvishandiso: Qt Mugadziri uye maturusi ekuona

pip install pyqt5-tools --pre

Izvi zvinokutendera kuti utange Qt Mugadziri wakananga kubva kune yako Python nharaunda uye tora mukana wekuona interface dhizaini.

Matanho ekutanga kugadzira graphical interface nePyQt

pyqt

Iyo yekutanga budiriro inoyerera nePyQt inosanganisira Gadzira chishandiso, gadzira hwindo guru, wedzera majeti, uye maneja zviitikoMuenzaniso mudiki wekugadzira hwindo nebhatani ungave unotevera:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton

app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle('Mi Primera Aplicación con PyQt')
window.setGeometry(100, 100, 400, 200)

button = QPushButton('¡Haz clic en mí!', window)
button.setGeometry(150, 80, 100, 40)

window.show()
sys.exit(app.exec_())

Mumuenzaniso uyu, tinogadzira hwindo nebhatani iro, kana rakadzvanywa, rinoita rinoenderana chiito.Chimiro chinoratidzawo kuti chero PyQt application yakarongeka sei: hombe QApplication kirasi, imwe kana anopfuura majeti, uye chiitiko kuuraya loop.

Dhizaini yekuona neQt Designer

Qt Designer ndeimwe yemabhenefiti makuru ePyQt pamusoro pemamwe maraibhurariIcho chishandiso chine graphical chinokutendera iwe kudhonza uye kudonhedza majeti, gadzirisa zvinoonekwa zvivakwa, shandura mameseji, govera mavara, kana kugadzirisa marongero ehwindo rako intuitively, pasina kunyora kodhi.

  Kugadzira Macros muExcel: Iyo Yakazara Nhanho-ne-Nhanho Gwaro

Kuyerera kwakajairika kungava:

  • Vhura Qt Dhizaini (yakaiswa nepyqt5-zvishandiso kana inosanganisirwa mune yakazara Qt kugovera).
  • Sarudza hwindo retemplate raunoda (semuenzaniso, 'main window').
  • Wedzera ese majeti aunoda kubva kubhokisi rekushandisa kuhwindo rako uye gadzirisa zvivakwa zvavo kubva kune inspector uye mupepeti wezvivakwa.
  • Sevha faira nekuwedzera .ui.
  • Rodha iyi faira kubva kuchirongwa chako chePython uye ubatanidze majeti kune anoenderana mabasa kana nzira.

Izvi zvinobvumira kuparadzanisa zvakajeka dhizaini yekuona kubva mukugadzirwa kunonzwisisika., kufambisa kushanda kwechikwata uye kushandiswa zvakare kwechiratidziro. Uyezve, iwe unogona kushandura iyo interface pasina kushandura iyo Python kodhi, iyo inokurumidza kukurumidza kusimudzira uye dhizaini iteration.

graphical mushandisi interface
Nyaya inoenderana:
Chii chinonzi graphical mushandisi interface uye chinoshanda sei?

Main modules, zvishandiso uye maficha ePyQt

PyQt inoumbwa nemamodule akati wandei anodzokorora zvikamu zvakasiyana zveQt. Zvimwe zvezvinonyanya kushandiswa ndezvi:

  • QtWidgets: Inosanganisira ese akajairwa majeti (mabhatani, mavara, mavara mabhokisi, menyu, nezvimwewo).
  • QtGui: Zvishandiso zvemifananidzo uye yepamberi yekuona manipulation.
  • QtCore: Basic mabasa uye zvinoshandiswa (chiratidzo uye slot manejimendi, tambo manejimendi, nguva, nezvimwewo).
  • QtNetwork: Yekuvandudza application network.
  • QtSql: Database yekubatanidza uye manejimendi.
  • QtXml, QtOpenGL, QtMultimedia, pakati pevamwe.

Uyezve, PyQt inosanganisira maturusi akadai se:

  • pyuic: Inoshandura .ui mafaera ehurongwa akagadzirwa neQt Designer kuita kodhi yePython inogoneka.
  • pylupdate: Bvisa tambo dzinoturikira kubva kukodhi yako uye gadzira mafaera ekunze.
  • Qt Linguist uye Qt Mubatsiri: Zvishandiso zveshanduro uye zvinyorwa zvepamhepo.

Anonyanya kufarirwa majeti uye zvikamu zvekusangana nePyQt

Paunenge uchivaka zvikumbiro nePyQt, unogona kutora mukana we akawanda epamberi majeti, zvakadai se:

  • QPushButton, QLabel, QComboBox, QLineEdit, QRadioButton, QCheckBox: zvinhu zvakakosha zvekudyidzana.
  • QListWidget, QTableWidget, QTreeWidget: kuratidza uye kutonga zvinyorwa, matafura uye hierarchies.
  • QTabWidget: Tab manejimendi.
  • QFileDialog: Dialog mabhokisi ekuvhura uye kuchengetedza mafaera.
  • QMenuBar, QStatusBar, QToolBar: yakajairika menyu uye toolbar zvinhu.
  • Tsika majeti: Unogona kugadzira uye kubatanidza ako ega majeti nekuwedzera makirasi ekutanga.

The flexibility is total: Unogona kusanganisa zvese izvi zvinhu, gadzirisa chitarisiko chavo, ubate zviitiko, uye ubatanidze majeti uye logic yekushandisa uchishandisa masaini uye slots..

Zvakanakira uye kuipa kwePyQt

Pakati pesimba rePyQt, Ivo vanosimbisa kuchinjika, hupfumi hwezvikamu uye multiplatform kubatanidzwaSignal- uye slot-based programming inogonesa agile uye scalable kutaurirana pakati pezvinhu. Maturusi ekuona anokwenenzvera dhizaini, uye nharaunda inoshanda inopa yakawanda zvinyorwa uye mienzaniso.

Zvisinei, Panewo zvimwe zvinokanganisa. Semuenzaniso:

  • Rezinesi rekutengesa rinogona kuve chipingamupinyi kune mamwe mapurojekiti kana iyo kodhi kodhi inoda kuvharwa uye iyo GPL isingagone kushandiswa.
  • Iyo yekudzidza curve yakakwira kune vasina kujairana neQt, kunyanya kana ichienzaniswa nekureruka kweTkinter.
  • Kunyangwe majeti mazhinji akanyorwa zvakanaka padanho reQt, zvinyorwa zvePyQt-zvakananga zvinogona kushaikwa kune mamwe makirasi chaiwo kana nzira.

PyQt inopesana neTkinter

Kuenzanisa pakati pePyQt neTkinter kunowanzo zivikanwa pakati peavo vatsva kuPython. Tkinter inouya yakabatanidzwa nePython uye iri nyore kwazvo kushandisa.Yakanaka kana iwe uchida yakapusa uye inokurumidza interface, kunyanya kune zvinyorwa kana zvemukati maturusi.

  Nhanganyaya yeSwift: Zvimiro uye Mabhenefiti

Ukuwo, PyQt inomira kunze kwehuwandu uye mhando yewidget, maturusi ekugadzira ekuona, uye kugona kwepamberi. (senge magiraidhi, kudyidzana nedzimwe nyika, multimedia, kana dhatabhesi). Kazhinji ndiyo sarudzo yemapurojekiti akaomarara, bhizinesi, sainzi, kana multimedia application.

Sarudzo yekupedzisira inotsamira pane zvaunoda chaizvo: kana iwe uchitsvaga hunyanzvi, chitarisiko chemazuva ano uye kuchinjika, PyQt (kana kuti PySide) ndiyo yakasarudzwa sarudzoKana iwe uchingoda chimwe chinhu chinoshanda uye chinokurumidza, Tkinter inokwana.

Shandisa makesi uye zvikumbiro zvehupenyu chaihwo

Nekuda kwekusimba kwayo uye nyore kugadzira maGUI ehunyanzvi, PyQt inoshandiswa muzvikamu zvakasiyana. Mimwe mienzaniso ndeiyi:

  • Enterprise desktop applications.
  • Zvinyorwa, magiraidhi kana dhatabhesi edhita.
  • Sainzi uye data kuona maturusi.
  • Rakareruka varaidzo maapplication nemitambo.
  • Rapid interface prototyping yekutanga uye agile budiriro.

Kukwanisa kwayo kubatanidza nemimwe mitauro, yakadai seC ++, inowedzera kuwedzera kusvika kwayo uye kushandiswa kwakasiyana-siyana.Izvi zvinogonesa kubatana muzvikwata zvakasiyana-siyana uko mamodule mumitauro yakasiyana anosanganiswa.

Internationalization, Unicode uye kuenderana

Imwe yemabhenefiti makuru ePyQt ndeye Tsigiro yakazara yeUnicode uye application internationalizationUnogona kutsanangura chimiro mumitauro yakawanda, gadzirisa tambo dzinoturikira, uye kutora mukana wezvishandiso zvakaita seQt Linguist uye pylupdate.

Shanduko pakati pemhando dzetambo muPython (str, unicode) uye Qt marudzi (QString) zvinongoitika otomatiki kazhinji; kana zvichidikanwa, kune mabasa chaiwo ekuita shanduko idzi.

Maturusi okuwedzera anodiwa

Nekuisa PyQt pamwe nemidziyo yayo, Iwe uchawana zvikomborero zvakadai se:

  • Qt Mugadziri: yeiyo graphic dhizaini yemainterfaces (yakambotsanangurwa kare).
  • Qt Linguist: kubata shanduro nemaitiro ekudyidzana nedzimwe nyika.
  • pyuic: kushandura .ui marongerwo mafaira muPython code.
  • pyrcc: kubatanidza zviwanikwa zvakaita semifananidzo kana zvidhori muzvinoitwa.
  • pylupdate: kuburitsa tambo dzinoshandurika kubva kukodhi.

Nezvishandiso izvi, Iyo dhizaini, kusimudzira, kuyedza, uye kutenderera kutenderera kunowedzera kushanda, kuchengetedza nguva uye kuderedza zvikanganiso..

Kurudziro uye zviwanikwa zvekudzidza PyQt

Kune yayo veteran chinzvimbo uye inoshanda nharaunda, PyQt ine hupfumi hwezvinhu zvekudzidzisa, zvidzidzo, maforamu uye zvinyorwa.Kunyangwe iwe uchida kudzidza kubva kutanga kana kuvandudza ruzivo rwako, unogona kutanga nezvinyorwa zviri pamutemo, zvidzidzo, zvidzidzo zvepamhepo, uye mienzaniso inoshanda.

Saizvozvowo, Kana iwe uchitsvaga yakawedzera kurongeka kudzidziswa, kune mabootcamp uye makosi ane hunyanzvi mukuvandudza application nePyQt.Zvirongwa izvi zvinosanganisa dzidziso nekudzidzira, zvichikubvumidza iwe kuvaka portfolio yakasimba yemusika webasa.

Mastering graphical interface budiriro nePyQt inogona kuve yakakosha mutsauko muchikamu chetekinoroji. Kubatanidzwa kwayo nePython, simba, uye mhedzisiro mhedzisiro inoita kuti ive imwe yeakanakisa sarudzo yekugadzira inoyevedza uye inoshanda muchinjika-chikuva desktop software.