Iyini i-PyQt futhi kungani iyindlela engcono kakhulu yokudala ukuxhumana kwezithombe ngePython?

Isibuyekezo sokugcina: 28 de julio de 2025
  • I-PyQt ixhuma i-Python kuhlaka lwesithombe olunamandla lwe-Qt, olukuvumela ukuthi udale izinhlelo zokusebenza ezichwepheshile zedeskithophu.
  • Ikuvumela ukuthi uklame izixhumanisi ezibonakalayo noMklami we-Qt futhi uzilawule nge-Python ngenxa yamamojula afakiwe nezinsiza.
  • Inikeza ukwesekwa kwenkundla ehlukahlukene kanye nohlu olubanzi lwamawijethi, amathuluzi, nemibhalo yezobuchwepheshe ukwenza ukufunda kube lula.

i-pyqt

Uma uqala ukungena ekuthuthukisweni kohlelo lokusebenza lwe-Python, cishe usunesifiso sokwazi ngamathuluzi akuvumela ukuthi udale izixhumi ezibonakalayo nezinobungcweti. I-PyQt ngokungangabazeki ingenye yamagama avelele kakhulu kulo mkhakha , futhi yize kukhona ezinye izindlela, ukuthandwa kwayo kanye nokuguquguquka kwayo kwenza kube inketho ekhangayo kakhulu. Namuhla, sizochaza ngokuningiliziwe ukuthi iyini i-PyQt, ukuthi isebenza kanjani, izinzuzo zayo kanye nokungalungi kwayo uma kuqhathaniswa neminye imitapo yolwazi, kanye nezimo zayo eziyinhloko zokusetshenziswa, ukuze ube nalo lonke ulwazi oludingayo ngaphambi kokuqalisa uhlelo lwakho lokuqala lwe-Python olunobungcweti.

Ukuqonda i-PyQt kanye ne-ecosystem yayo kungavula iminyango eminingi emhlabeni wokuthuthukiswa kwesofthiwe, njengoba ukwazi ukudala isikhombikubona sezithombe kuyikhono elibaluleke kakhulu kokubili kumaphrojekthi omuntu siqu kanye nasezindaweni zobungcweti. Ngaphezu kwalokho, ukuqonda ubudlelwano bayo nobuchwepheshe obufana ne-Qt, i-PySide, nezinye izindlela kuzokusiza ukuthi wenze izinqumo ezingcono lapho ukhetha ithuluzi elifanele.

Iyini i-PyQt?

I-PyQt iyisethi yokubopha phakathi kwe-Python kanye nomtapo wezithombe odumile we-cross-platform i-Qt . Lokhu kusho ukuthi, ngenxa ye-PyQt, ungasebenzisa amathuluzi anamandla e-Qt namawijethi avela kuma-script akho e-Python, uhlanganisa ukulula nesivinini se-Python nokusebenza nokuqina kwe-Qt, enguqulweni yayo eyinhloko ehlelwe ku-C++.

Yasungulwa yinkampani yaseBrithani i-Riverbank Computing kusukela ngasekupheleni kweminyaka yama-90, i-PyQt inikeza ibhuloho lokudala zonke izinhlobo zezinhlelo zokusebenza ze-graphical user interface ezinhlelweni zokusebenza ezifana ne-Windows, i-GNU/Linux, kanye ne-Mac OS X. Ukutholakala kwayo ngaphansi kwamamodeli ahlukene elayisensi (i-GPL, i-LGPL, kanye neyentengiso) kuye kwenza kwaba lula ukwamukelwa kwayo kokubili kumaphrojekthi esofthiwe yamahhala kanye nezinhlelo zezentengiselwano.

Iyini i-Qt futhi kungani ibalulekile ku-PyQt?

I-Qt iyi -cross-platform, evulekile, uhlaka oluqondiswe ezintweni olwaziwa kahle ngokusebenza kahle kwayo, ukuzinza, kanye nesivinini, njengoba ithuthukiswe ku-C++. I-Qt iyathakazelisa ngezizathu eziningana: ivumela ukuthuthukiswa kwezinhlelo ezine-codebase efanayo yezinhlelo zokusebenza ezahlukene, isebenzisa i-modularity kanye nokulula kokufunda kwe-paradigm eqondiswe ezintweni, futhi inikeza iqoqo elicebile lamawijethi , amathuluzi okuklama (njenge-Qt Designer), kanye nezinsiza zokwenza umhlaba wonke, izizindalwazi, ukuxhumana, ihluzo ze-2D/3D, kanye ne-multimedia.

I-PyQt yadalwa njengenguqulo ye-Python yawo wonke lawo mandla : inikeza isikhombimsebenzisi se-Python kuhlaka lwe-Qt, ngakho abathuthukisi bangafinyelela uhlu olubanzi lwe-Qt lwamawijethi nezinsiza ngaphandle kokushiya imvelo ye-Python. Ngaphezu kwalokho, i-Qt ibilokhu isekelwa yizinkampani ezinkulu nemiphakathi (i-Nokia, i-Digia, i-Qt Company), okuqinisekisa ukuthuthuka kwayo okuqhubekayo nokusekelwa.

Umehluko phakathi kwe-PyQt nezinye izindlela: i-PySide, i-Tkinter, i-PyGTK, i-wxPython

Uma ufuna ukudala izixhumi ezibonakalayo ku-Python, i-PyQt akuyona yodwa inketho, yize ingenye yezinhlelo zokusebenza eziphelele kakhulu nezichwepheshile . Kubalulekile ukuqhathanisa i-PyQt neminye imitapo yolwazi ethandwayo:

  • I-PySide: Wazalelwa njengempendulo yemikhawulo yelayisense ye-PyQt. Kuthuthukiswe futhi kunakekelwe ngu Inkampani ye-QtI-PySide iyisibopho esisemthethweni se-Qt se-Python futhi isebenzisa ilayisense ye-LGPL, evuleleke kakhulu kumaphrojekthi wezohwebo. Nakuba ekuqaleni yayingemuva kwe-PyQt, manje isinokulingana okusebenzayo futhi iyindlela enhle kakhulu uma ukhathazekile ngamalayisense okuthengisa.
  • Tkinter: Iwumtapo wolwazi owakhelwe ngaphakathi ePython wokusebenzelana kwezithombe. Ilula kakhulu futhi ilungele imibhalo eyisisekelo nama-GUI. Nokho, Ayinawo amawijethi athuthukile namathuluzi omklamo obonakalayo njenge-Qt Designer. Ilungele amaphrojekthi asheshayo noma ama-prototypes.
  • I-PyGTK y wxPython: Lezi ezinye izindlela ezigxile kuzisekelo ezihlukene (i-GTK nama-wxWidgets) futhi zineqoqo lazo lamawijethi nezitayela ze-multiplatform. Ngokuvamile zikhethelwa amaphrojekthi athile kakhulu noma ngenxa yokuncamela indawo ethile ebonakalayo.
  I-Samsung Internet vs Google Chrome: umehluko wangempela nokuthi yimuphi ofanele wona

Empeleni, i-PyQt kanye ne-PySide zikhethwa kakhulu ekuthuthukisweni kobungcweti noma lapho kudingeka ukubukeka okuthuthukile kanye nokusebenza , kuyilapho i-Tkinter igcinelwe izinsiza ezilula.

Ilayisense nezinguqulo: yini okudingeka uyicabangele?

Esinye sezici ezibalulekile lapho ukhetha i-PyQt imodeli yayo yelayisensi. I-PyQt isatshalaliswa ngaphansi kwe-GPL (i-GNU Public License) kanye nelayisensi yezentengiselwano ekhokhelwayo. Lokhu kusho ukuthi amaphrojekthi kumele abe yisofthiwe yamahhala noma akhokhe izindleko zelayisensi yezentengiselwano (okwamanje cishe ama-$550). Uma umgomo wakho ukusabalalisa isofthiwe yomthombo ovaliwe noma ngezinjongo zezentengiselwano ngaphandle kokukhipha ikhodi yomthombo, udinga inguqulo yezentengiselwano.

Ngakolunye uhlangothi, i-PySide isebenzisa ilayisensi ye-LGPL , enganciphisi kakhulu futhi evumela ukusetshenziswa kwayo ezinhlelweni zezentengiselwano ngaphandle kokukhipha ikhodi yomthombo, okwenze yathandwa eminyakeni yamuva nje, ikakhulukazi ngokusekelwa okusemthethweni okuvela kwi-Qt Company kanye ne-codebase eqinile ngokwengeziwe.

Ngokuphathelene nezinguqulo, igatsha eliyinhloko lamanje yi-PyQt6 (inguqulo yakamuva eqinile engu-6.4.2), yize i-PyQt5 isasetshenziswa kabanzi ngenxa yokuhambisana kwayo namaphrojekthi angaphambilini kanye nezibonelo ezitholakala ku-inthanethi.

Ungayifaka kanjani i-PyQt?

Ukufaka i-PyQt endaweni yakho yokuthuthukiswa kulula kakhulu. Indlela evame kakhulu ukufaka i-PyQt5 noma i-PyQt6 usebenzisa i-pip, umphathi wephakheji we-Python . Mane nje usebenzise umyalo olandelayo ku-terminal yakho:

pip install PyQt5

o

pip install PyQt6

Kuye ngenguqulo oyithandayo. Uma ufuna namathuluzi okubuka njenge-Qt Designer, ungafaka i-pyqt5-tools : i-Qt Designer namathuluzi okubuka

pip install pyqt5-tools --pre

Lokhu kuzokuvumela ukuthi uqalise i-Qt Designer ngokuqondile endaweni yakho ye-Python futhi usebenzise ngokunenzuzo ukwakheka kokusetshenziswa kubonwa.

Izinyathelo zokuqala zokwenza i-graphical interface nge-PyQt

i-pyqt

Umsebenzi oyisisekelo wokuthuthukiswa nge-PyQt uqukethe ukudala uhlelo lokusebenza, ukuklama iwindi eliyinhloko, ukwengeza amawijethi, kanye nokusingatha imicimbi . Isibonelo esincane sokudala iwindi elinenkinobho singaba okulandelayo:

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_())

Kulesi sibonelo, sakha iwindi elinenkinobho ethi, uma icindezelwa, isebenzise isenzo esihambisanayo . Isakhiwo sibonisa nokuthi noma yiluphi uhlelo lokusebenza lwe-PyQt luhlelwe kanjani: ikilasi eliyinhloko le-QApplication, iwijethi eyodwa noma ngaphezulu, kanye ne-loop yokwenza umcimbi.

Idizayini ebonakalayo enoMklami we-Qt

I-Qt Designer ingenye yezinzuzo ezinkulu ze-PyQt kunezinye izincwadi . Iyithuluzi lezithombe elikuvumela ukuthi uhudule futhi ulahle amawijethi, ulungiselele izakhiwo ezibonakalayo, ushintshe umbhalo, unikeze imibala, noma ushintshe ukwakheka kwefasitela lakho ngendlela enembile, ngaphandle kokubhala noma iyiphi ikhodi.

  Iyini i-Chart.js nokuthi ungawakha kanjani amashadi asebenzisanayo kuwebhusayithi yakho

Ukugeleza okujwayelekile kuzoba:

  • Vula i-Qt Designer (efakwe ngamathuluzi e-pyqt5 noma ifakwe ekusabalaliseni okuphelele kwe-Qt).
  • Khetha isifanekiso sewindi osifunayo (isibonelo, 'iwindi elikhulu').
  • Engeza wonke amawijethi owadingayo ukusuka kubhokisi lamathuluzi kuya efasiteleni lakho futhi ulungise izakhiwo zawo kusukela kumhloli kanye nomhleli wendawo.
  • Londoloza ifayela ngesandiso .ui.
  • Layisha leli fayela kusuka kuhlelo lwakho lwePython bese uxhuma amawijethi emisebenzini ehambisanayo noma izindlela.

Lokhu kuvumela ukuhlukaniswa okucacile komklamo obonakalayo kusuka ekuthuthukisweni okunengqondo , okwenza kube lula ukusebenza ngokubambisana kanye nokusetshenziswa kabusha kwesixhumi esibonakalayo. Ngaphezu kwalokho, ungashintsha isixhumi esibonakalayo ngaphandle kokushintsha ikhodi ye-Python, okusheshisa kakhulu ukuthuthukiswa kanye nokuphindaphinda komklamo.

isikhombimsebenzisi sokuqhafaza
I-athikili ehlobene:
Iyini i-graphical interface yomsebenzisi futhi isebenza kanjani?

Amamojula amakhulu, izinsiza kanye nezici ze-PyQt

I-PyQt inamamojula amaningana aphinda izingxenye ezahlukene ze-Qt. Amanye asetshenziswa kakhulu yile:

  • QtWidgets: Kuhlanganisa wonke amawijethi ajwayelekile (izinkinobho, amalebula, amabhokisi ombhalo, amamenyu, njll.).
  • QtGui: Amathuluzi ezithombe kanye nokukhohlisa okubonakalayo okuthuthukile.
  • I-QtCore: Imisebenzi eyisisekelo nezinsiza (ukuphathwa kwesignali ne-slot, ukuphathwa kwentambo, izikhathi, njll.).
  • QtNetwork: Okokuthuthukisa uhlelo lokusebenza lwenethiwekhi.
  • QtSql: Ukuxhumana kwesizindalwazi nokuphathwa.
  • QtXml, I-QtOpenGL, QtMultimedia, phakathi kwabanye.

Ukwengeza, i-PyQt ihlanganisa amathuluzi afana nalawa:

  • pyuic: Iguqula amafayela esakhiwo se-.ui adalwe ne-Qt Designer abe ikhodi yePython esebenzisekayo.
  • i-pylupdate: Khipha amayunithi ezinhlamvu ahumusheka kukhodi yakho futhi ukhiqize amafayela ukuze asetshenziswe kwamanye amazwe.
  • Isazi sezilimi ze-Qt kanye nomsizi we-Qt: Izinsiza zokuhumusha kanye nemibhalo eku-inthanethi.

Amawijethi adume kakhulu nezingxenye zokusebenzelana ne-PyQt

Uma udala izinhlelo zokusebenza nge-PyQt, ungasebenzisa inani elikhulu lamawijethi athuthukile , njenge:

  • QPushButton, QLabel, QComboBox, QLineEdit, QRadioButton, QCheckBox: izici eziyisisekelo zokusebenzisana.
  • I-QListWidget, I-QTableWidget, I-QTreeWidget: ukubonisa nokuphatha izinhlu, amathebula nezigaba.
  • QTabWidget: ukuphathwa kwethebhu.
  • I-QFileDialog: Amabhokisi ezingxoxo zokuvula nokugcina amafayela.
  • QMenuBar, QStatusBar, I-QToolBar: imenyu evamile nezinto zebha yamathuluzi.
  • Amawijethi ngokwezifiso: Ungakha futhi uxhume amawijethi akho ngokunweba amakilasi ayisisekelo.

Ukuguquguquka kuphelele: ungahlanganisa zonke lezi zinto, ushintshe ukubukeka kwazo, uphathe imicimbi, futhi uxhume amawijethi kanye ne-logic yohlelo lokusebenza usebenzisa amasignali kanye nezikhala.

Izinzuzo kanye nokubi kwe-PyQt

Amandla e-PyQt afaka phakathi ukuguquguquka, ingcebo yezingxenye, kanye nokuhlanganiswa kwezingxenye eziningi . Ukuhlela okusekelwe esiginali kanye nesikhala kwenza ukuxhumana okushesha nokungalinganiswa kwezinto kube lula. Amathuluzi abonakalayo enza kube lula ukuklama, futhi umphakathi osebenzayo unikeza imibhalo eminingi kanye nezibonelo.

Nokho, kukhona nezinye izinkinga . Isibonelo:

  • Ilayisensi yezohwebo ingaba yisithiyo kwamanye amaphrojekthi uma ikhodi yomthombo idinga ukugcinwa ivaliwe futhi i-GPL ingakwazi ukusetshenziswa.
  • Ijika lokufunda liphakeme kulabo abangayijwayele i-Qt, ikakhulukazi uma iqhathaniswa nobulula be-Tkinter.
  • Nakuba amawijethi amaningi ebhalwe kahle ezingeni le-Qt, imibhalo eqondene ne-PyQt ingase ishodelwe ezigabeni ezithile noma ezindleleni ezithile.

I-PyQt ngokumelene ne-Tkinter

Ukuqhathaniswa phakathi kwe-PyQt ne-Tkinter kuvamile kulabo abaqala nge-Python. I-Tkinter iza ihlanganiswe ne-Python futhi kulula kakhulu ukuyisebenzisa . Ilungele uma udinga isikhombikubona esilula nesisheshayo, ikakhulukazi kuma-script noma amathuluzi angaphakathi.

  I-Moment.js: Incazelo ephelele nezibonelo ezingokoqobo zomtapo wolwazi

Ngakolunye uhlangothi, i-PyQt ivelele ngobuningi bayo kanye nekhwalithi yamawijethi, amathuluzi okuklama okubonakalayo, kanye namakhono athuthukile (njengezithombe, ukwenziwa kwamazwe ngamazwe, i-multimedia, kanye nezizindalwazi). Ngokuvamile kuyisinqumo samaphrojekthi ayinkimbinkimbi kakhulu, izinhlelo zokusebenza zebhizinisi, izinhlelo zokusebenza zesayensi, noma izinhlelo zokusebenza ze-multimedia.

Ukukhetha kokugcina kuzoncika ezidingweni zakho ezithile: uma ufuna ubungcweti, ukubukeka kwesimanje kanye nokuguquguquka, i-PyQt (noma i-PySide) iyindlela ekhethwayo ; uma udinga nje into esebenzayo futhi eshesha, i-Tkinter izokwanela.

Sebenzisa amacala kanye nezinhlelo zokusebenza zangempela

Ngenxa yokuqina kwayo kanye nokulula kokusetshenziswa kwayo ekudaleni ama-GUI ochwepheshe, i-PyQt isetshenziswa emikhakheni eyahlukene . Ezinye izibonelo yilezi:

  • Izinhlelo zokusebenza zedeskithophu yebhizinisi.
  • Umbhalo, ihluzo noma abahleli besizindalwazi.
  • Amathuluzi okubuka ngesayensi nedatha.
  • Izinhlelo zokusebenza zokuzijabulisa ezilula nemidlalo.
  • I-prototyping yesixhumi esibonakalayo esisheshayo sokuqalisa nokuthuthuka okushesha.

Ikhono layo lokuhlanganisa nezinye izilimi, njenge-C++, landisa ububanzi bayo kanye nokuguquguquka kwayo . Lokhu kwenza kube lula ukubambisana emaqenjini ahlukahlukene lapho kuhlanganiswa khona amamojula ngezilimi ezahlukene.

Ukwenziwa kwamazwe ngamazwe, i-Unicode nokuhambisana

Enye yamandla amakhulu e-PyQt ukusekela kwayo okugcwele i-Unicode kanye nokufakwa kwezicelo kwamanye amazwe . Ungachaza isikhombimsebenzisi ngezilimi eziningi, uphathe izintambo ezihunyushwayo, futhi usebenzise izinsiza ezifana ne-Qt Linguist kanye ne-pylupdate.

Ukuguqulwa phakathi kwezinhlobo zezintambo ku-Python ( str , unicode ) kanye nezinhlobo ze-Qt ( QString ) kuyazenzakalela ezimweni eziningi; uma kudingeka, kunemisebenzi ethile yokwenza lokhu kuguqulwa.

Kudingeka amathuluzi engeziwe

Ngokufaka i-PyQt kanye namathuluzi ayo, uzothola izinsiza ezifana nalezi:

  • Umklami we-Qt: ngomklamo wezithombe wezindawo zokusebenzelana (okuchazwe ngaphambilini).
  • Isazi solimi lwe-Qt: ukuphatha ukuhumusha nezinqubo zokwenza amazwe ngamazwe.
  • pyuic: ukuguqula amafayela esakhiwo se-.ui abe yikhodi yePython.
  • pyrcc: ukuhlanganisa izinsiza ezifana nezithombe noma izithonjana zibe izinto ezisebenzisekayo.
  • i-pylupdate: ukukhipha izintambo ezihumushekayo kukhodi.

Ngala mathuluzi, umjikelezo wokuklama, wokuthuthukisa, wokuhlola, kanye nowokufaka uba ngcono kakhulu, wonga isikhathi futhi unciphise amaphutha.

Izincomo nezinsiza zokufunda i-PyQt

Ngenxa yomlando wayo omude kanye nomphakathi osebenzayo, i-PyQt inikeza inqwaba yezinto zokuqeqesha, izifundo, amaforamu, kanye nemibhalo . Kungakhathaliseki ukuthi ufuna ukufunda kusukela ekuqaleni noma ukuthuthukisa amakhono akho, ungaqala ngemibhalo esemthethweni, izifundo, izifundo eziku-inthanethi, kanye nezibonelo ezisebenzayo.

Ngaphezu kwalokho, uma ufuna ukuqeqeshwa okuhlelekile, kunezinkundla zokuqalisa kanye nezifundo ezikhethekile zokuthuthukiswa kwezicelo nge-PyQt . Lezi zinhlelo zihlanganisa ithiyori nokuzijwayeza, okukuvumela ukuthi udale iphothifoliyo eqinile yemakethe yemisebenzi.

Ukuthuthukisa isixhumi esibonakalayo esibonakalayo nge-PyQt kungaba umehluko obalulekile emkhakheni wezobuchwepheshe. Ukuhlanganiswa kwayo nePython, amandla, kanye nemiphumela yobungcweti kuyenza ibe enye yezinketho ezinhle kakhulu zokudala isoftware ekhangayo nesebenzayo yedeskithophu ye-cross-platform.