Ovaj je vodič fokusiran na podučavanje korištenju QT okvira koristeći Python kao programski jezik, za to možemo koristiti i PySide i PyQt, ali u ovom tutorialu ćemo koristiti PySide jer se autoru ovog vodiča više sviđa licenca LGPL PySide. nego GPL ili PyQt Commercial.
Prvo ... Šta je Python?
Prema Wikipediji:
"Python je protumačeni programski jezik na visokoj razini čija filozofija naglašava vrlo čistu sintaksu i favorizira čitljiv kôd."
Python je multipadradigmski programski jezik, tako da podržava različite paradigme python programiranja, na primjer podržava: objektno orijentirano programiranje (OOP), imperativno programiranje (strukturirano) i u manjoj mjeri funkcionalno programiranje.
Samo to?
Ne, to je i dinamički jezik za kucanje, što znači da nam python omogućava dodijeljivanje različitih vrsta vrijednosti istoj varijabli tokom izvršavanja programa, neki to vide kao prednost, drugi kao nedostatak, uvjerite se sami .
Pored spomenutog, Python nam omogućava (kao i mnogi drugi), programiranje i u web okruženju i na web radnoj površini, on je i višeplatformni, trenutno podržava Gnu / Linux, Windows, Mac osx, Android (ako treba ih spomenuti radi vaše izmjene).
Šta je QT?
QT je multiplatformni okvir, koji je originalno razvila Nokia, da bi se kasnije prodao Digiji, koji se koristi za razvoj aplikacija, napisan je na C ++, ali se može koristiti i na drugim jezicima putem Vezova (u našem slučaju PySide ili PyQt )
Razlike između PySide i PyQt
Uglavnom
- Licenca, PySide je licenciran pod uvjetima LGPL-a, a PyQT je pod uvjetima GPL-a ili komercijalne licence, tako da bismo morali platiti u slučaju stvaranja zatvorene aplikacije.
- PySide je kreirala Nokia, a PyQt RiverBank.
- PySide nam štedi probleme korištenja STR-a svaki put kada koristimo QString svakog od QT objekata.
Možemo detaljno objasniti kompletne promjene Aqui.
Priprema:
Instaliramo Qt:
Ako imamo distro s Kdeom, trebali bismo već imati ono što nam treba, ako ne:
sudo apt-get install qt4-dev-tools
Instaliramo PySide:
sudo apt-get install pyside pyside-tools
Naša prva aplikacija Python + QT
Idemo u naš omiljeni uređivač teksta, preporučujem vam da instalirate sublime-text2, ali možete koristiti onaj koji želite, a mi ukucavamo sljedeći kod i spremimo ga s imenom koje želimo da uvijek završava s nastavkom ".py" , Sačuvat ću kao app1.py:
Izvodimo ga iz konzole ovako:
python app1.py
Trebao bi se pojaviti ovaj prozor
Šta? Samo to, jer ako ste ranije imali samo konzolu, na što se žalite? Šta ste očekivali, Erp? hajde čovječe da nešto započne.
Sada objasnimo kod:
from PySide.QtGui import *
from sys import exit, argv
Ovdje uvozimo potrebne module za izvršavanje PySide-a.
app = QApplication(argv)
Kreiramo instancu Qapplication s imenom app.
window = Qwidget()
Kreiramo instancu QWidget ().
window.setWindowTitle("Primera App PySide")
Izvršavamo metodu setWindowTitle koja prima String kao parametar za "postavljanje" naslova našeg Qwidgeta.
window.show()
Pokazujemo naš prozor
exit(app.exec_())
konačno izvršavamo beskonačni ciklus izvršavanja naše QApplication ().
hvala
Hvala vam za one koji su me slijedili ovdje i bili korisni. Za sljedeći vodič objasnit ću vam kako dizajnirati naše prozore pomoću QT Designera i uvesti ih u naše projekte.
Dodatno dodajem link na forum desde linux gdje imam malu temu s malom bibliotekom Python tutorijala i vodiča, koji sadrže različite termine uključujući:
Osnovni vodiči za Python
wxPython
PyQt i PySide
Django
web2py
Naučno programiranje u pythonu.
I još mnogo toga.
Nadam se da će vam služiti, opraštam se, kao i uvijek zadovoljstvo što pripadam ovoj divnoj zajednici.
Hvala na postu!
2 stvari:
1. Qt prvotno nije razvila Nokia, već Trolltech, koju je kasnije kupila Nokia. Potonji je potom Qt prodao Digiji.
2. Slika u prvom primjeru aplikacije ne odgovara kodu.
Hvala na lekciji, slijedit ću je 🙂
Potpuno si u pravu što sam to propustio. I druga stvar koju ste također u pravu je da sam je promijenio kako bih je olakšao i ne koristio klasu i propustio sam modifikaciju, početničke greške. Već sam proslijedio ispravke da ih neki urednik odobri.
Ne mogu modificirati, prepuštam to nekom uredniku.
Pozdrav.
Pošaljite e-poštu uredniku s ispravljenim vodičem. možete ga poslati na e-mail @nano koji je jedan od urednika
mailto: nano.world.contact@gmail.com
molim vas, ne ostavljajte tutorial ovako
pozdravi
Jedna stvar me pogađa: zašto u svom kodu koristite "from import *"?
Pozdrav!
To je ispravan način uvoza, pri ovakvom uvozu mu kažete koju određenu klasu modula želite uvesti, a ne pozivate kompletan modul.
Pozdrav.
To me zbunjuje. Nadalje, ne preporučuje se u PEP8:
"Treba izbjegavati uvoz zamjenskih znakova (iz modula import *), jer oni čine nejasnim koja su imena prisutna u prostoru imena, što zbunjuje čitače i mnoge automatizirane alate ..."
Vodio sam se uglavnom profesionalnim kodovima, kao što je Ninja-Ide, kod možete vidjeti ovdje: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyTo se radi i u PyQt-u, ali u bilo kojem obliku ne postoji ništa što vas prisiljava da koristite jedan ili drugi obrazac.
Ovdje možete vidjeti raspravu o StackOverflowu o ovome:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Tamo spominju prednosti i nedostatke svakog od stilova.
ok izvinite što vas nisam razumio, znam to, učinio sam to samo zato što nisam htio davati objašnjenje svakog elementa QApplication, QWidget, a zatim generalizirati, ali u potpunosti ste u pravu.
Izvinite za nesporazum.
Ne, niste razumjeli ili niste obraćali pažnju ... Mislim, koristeći «iz modula import *», to jest, mislim na «zvjezdicu» ... u tom StackOverflow postu govore o nečem drugom, ali to i dalje ističu:
"Bilo koja metoda je prihvatljiva, ali nemojte koristiti iz uvoza modula *."
Je li to sada razumljivo?
Njemački je u pravu. Kakva je korist od from import import ako za taj modul uvoza uvozite sav sadržaj sa zvjezdicom. Slds jednako lijep post.
Ah, dobro, sad razumijem ... svejedno, ne uzimajte mi predugo, također sam početnik u Pythonu. Ako prođete kroz moj blog, vidjet ćete da sam napisao post sličan vašem, ali s Gtk + 3 koristeći PyGObject.
Pozdrav i hvala!
Ovdje ostavljam Pep8, na španskom, preporučujući upotrebu im
Izuzetno je neodređeno koristiti relativni uvoz za uvoz koda iz paketa. Uvijek koristite apsolutni put paketa za sav uvoz. Čak i sada kada je PEP 328 [7] u potpunosti implementiran u Python 2.5, korištenje relativnog uvoza ozbiljno se obeshrabruje; apsolutni uvoz je prenosiviji i obično čitljiviji.
Kada uvozite klasu iz modula, obično je ispravno to učiniti
iz myclass uvoza MyClass
iz foo.bar.yourclass uvoz YourClass
Saludos
Pročitaj ovo: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (core py programer) preporučuje otprilike ovako:
from PyQt4 import QtCore, QtGui
Htio sam više, kad drugi dio!?
Pozdrav 🙂
Vrlo dobri vodiči, plus možda je ugodnije programirati.
Evo primjera sučelja od nule (bez korištenja QtDesignera).
https://github.com/xr09/metrocontador
Aplikacija dhunter je izvrsna, ovdje ni ne znamo koliko nam naplaćuju struju, haha pozdrav.
Hvala vam, to je jedna od onih aplikacija koje jedna izrađuje za osobnu upotrebu i služi drugima. Ovdje na Kubi račun se raščlanjuje s cijenom, lako je kopirati algoritam.
Biću vrlo svjestan ovog kursa. Već me dugo zanimaju višeplatformske aplikacije i mislim da je kombinacija Python + QT / Pyside odlična opcija. Pozdrav i čestitke za inicijativu
Slijedio sam sve korake točno onako kako vi kažete, ali kad pokrenem aplikaciju app1.py u terminalu, kaže mi Traceback (najnoviji zadnji poziv):
Datoteka "app1.py", red 1, u
iz PySide.QtGui uvoza *
ImportError: Nema modula pod nazivom PySide.QtGui. Šta je ovo?
to je zato što koristite verziju pythona kao zadani tumač, ali nemate instaliran pyside za tu verziju.
Pokušajte dodati na početku datoteke:
#! usr / bin / python3
ili drugo
#! usr / bin / python2
Preporučujem vam da koristite Eclipse s pydev-om i dobro konfigurirate tumač.
slds
#! / usr / bin / python3
ili drugo
#! / usr / bin / python2
PySide još nije kompatibilan s Python3, budite oprezni s tim, i drugo, provjerava uvoz kroz interaktivnu python konzolu, tako da znate jeste li ga instalirali ili ne, već instalira i pip.
Kako to mogu potvrditi?
U konzoli koristite "Python", ionako vam preporučujem da unesete biblioteku koju sam ostavio dolje u postu i preuzmete "python za sve", treba vam više baze.
Pozdrav i sreca.
Puno vam hvala, bilo mi je od velike pomoći.
pogledaj prijatelju F3niX Pronašao sam ovo, čini se da za python 3.3.2 na prozorima (a to je ono što imam do sljedeće sedmice) imaju binarne datoteke za 32 bita i 64 bita, probao sam vaš primjer i radi s pythonom 3.3.2 i Koristim PyScripter koji instalira različita okruženja, ako otvorite python 3, on pokreće skripte poput python 3, a ako otvorite 2.7 izvršava ih kao 2.7 i tako dalje (logično morate imati instaliranu tu verziju pythona ... razumije se)
http://qt-project.org/wiki/PySide_Binaries_Windows
Ostavit ću vas tamo, tračeve, možda će poslužiti nekom drugom 😀
Dobivam istu grešku.
Da li imate instaliran PySide?
Imam ga instaliranog.
Isprobajte PyQT4, instalirajte ga, a zatim promijenite linije PySide u PyQT4 ili PyQt4 i pokrenite ga. jojo. Koristite pomrčinu. Sreća.
Kako to mogu?
Puno vam hvala !!! Čeka se drugo poglavlje
Za ovaj petak mogu ga objaviti (Univerzitet me ima malo punog) pozdrava.
Prijatelj F3nIX Čekam vaš vodič br. 2, 3, 4… N hehehe
Već sam instalirao svoj vrlo elegantni linux sa PySide-om na čekanju i sve ostalo!
Pogledajmo kada će se ohrabriti da pokaže novog nastavnika 😀
Oprostite prijatelju, imam to u nacrtima, ali posao i studije nisu mi dali vremena, obećavam da ću nešto izvaditi ove sedmice.
Veliki pozdrav
Pozdrav, dugo sam bio zainteresiran za učenje Pythona, ali sumnjam. Ono što želim je da podnesem aplikaciju za malo poboljšanje procesa informisanja porodičnog preduzeća u kojem radim, želio bih napraviti nešto za prozore, s prozorom u početku, sve bi to radilo na jednom računaru, a zatim da može biti povezani putem Interneta sa bazom podataka na koju bi se povezalo par računara. Puno je raznolikosti u pogledu GUI aplikacije, i to mi vrti u glavi. Šta preporučujete da biste mu dali moderan i atraktivan izgled? Takođe bih napravio neke statističke grafikone i štampao izveštaje, šta mogu da koristim za to? Živjeli
Pozdrav, vrlo dobro, vaš post, imam pitanje. Mogu li bez problema prodati svoju aplikaciju napravljenu sa pysideom?
Pa, licence su uvijek lude, ali licence besplatnog softvera također vam omogućavaju prodaju softvera, ono što se događa je da vas GPL prisiljava na distribuciju koda, za razliku od LGPL-a, koji vas na to ne prisiljava.
U svakom slučaju, nisam stručnjak za licenciranje.
Pozdrav.