Acest tutorial este axat pe predarea utilizării cadrului QT folosind Python ca limbaj de programare, pentru aceasta putem folosi atât PySide, cât și PyQt, dar în acest tutorial vom folosi PySide, deoarece autorului acestui tutorial îi place mai mult licența LGPL PySide. decât GPL sau PyQt Commercial.
În primul rând ... Ce este Python?
Conform Wikipedia:
"Python este un limbaj de programare interpretat la nivel înalt, a cărui filosofie pune accent pe sintaxa foarte curată și favorizează codul lizibil."
Python este un limbaj de programare multipadradigm, deci acceptă diferite paradigme de programare python, de exemplu, acceptă: Programarea orientată pe obiecte (OOP), Programarea imperativă (structurată) și într-o măsură mai mică Programarea funcțională.
Doar asta?
Nu, este, de asemenea, un limbaj de tastare dinamic, ceea ce înseamnă că python ne permite să atribuim diferite tipuri de valori aceleiași variabile în timpul execuției programului, unii îl văd ca pe un avantaj, alții ca pe un dezavantaj, vezi de unul singur .
Pe lângă ceea ce a fost deja menționat, Python ne permite (ca multe altele), programarea atât în mediul web, cât și în desktopul web, este, de asemenea, pe mai multe platforme, în prezent acceptă Gnu / Linux, Windows, Mac osx, Android (Dacă trebuie să le menționați pentru modificarea dvs.).
Ce este QT?
QT este un cadru multiplatform, dezvoltat inițial de Nokia, care urmează să fie vândut către Digia, care este utilizat pentru dezvoltarea aplicațiilor, este scris în C ++, dar poate fi utilizat în alte limbi prin Bindings (în cazul nostru PySide sau PyQt)
Diferențe între PySide și PyQt
În principal
- Licență, PySide este licențiat în condițiile LGPL, iar PyQT este în condițiile GPL sau în baza unei licențe comerciale, deci ar trebui să plătim în cazul creării unei aplicații închise.
- PySide este creat de Nokia, iar PyQt de RiverBank.
- PySide ne scutește de problemele folosirii STR de fiecare dată când folosim QString pentru fiecare dintre obiectele QT.
Putem detalia detaliile modificărilor Aici.
Pregătirea:
Instalăm Qt:
Dacă avem o distribuție cu Kde, ar trebui să avem deja ceea ce avem nevoie, dacă nu:
sudo apt-get install qt4-dev-tools
Instalăm PySide:
sudo apt-get install pyside pyside-tools
Prima noastră aplicație Python + QT
Mergem la editorul nostru de text preferat, vă recomand să instalați sublime-text2, dar îl puteți folosi pe cel pe care îl preferați și tastăm următorul cod și îl salvăm cu numele pe care dorim să-l încheiem întotdeauna cu extensia „.py” , Voi salva ca app1.py:
Îl rulăm de pe consolă astfel:
python app1.py
Această fereastră ar trebui să apară
Ce? Doar asta, pentru că dacă ai avea o consolă înainte, de ce te plângi? La ce te așteptai, un Erp? haide omule, începe ceva.
Acum să explicăm codul:
from PySide.QtGui import *
from sys import exit, argv
Aici importăm modulele necesare pentru executarea PySide.
app = QApplication(argv)
Creăm instanța Qapplication cu numele aplicației.
window = Qwidget()
Creăm instanța QWidget ().
window.setWindowTitle("Primera App PySide")
Executăm metoda setWindowTitle, care primește un șir ca parametru pentru a „seta” titlul Qwidget-ului nostru.
window.show()
Ne arătăm fereastra
exit(app.exec_())
în cele din urmă executăm ciclul infinit de execuție a aplicației noastre QA ().
Mulţumiri
Mulțumesc pentru cei care m-au urmărit aici și mi-au fost de folos. Pentru următorul tutorial voi explica cum să proiectăm ferestrele noastre cu QT Designer și să le import în proiectele noastre.
În plus, adaug link-ul către forum desde linux unde am o mică temă cu o mică bibliotecă de tutoriale și ghiduri Python, care conține diferiți termeni, inclusiv:
Tutoriale de bază Python
wxPython
PyQt și PySide
Django
web2py
Programare științifică în python.
Si multe altele.
Sper că vă vor servi, îmi iau rămas bun, ca întotdeauna o plăcere de a aparține acestei minunate comunități.
Mulțumesc pentru postare!
2 lucruri:
1. Qt nu a fost dezvoltat inițial de Nokia, ci de Trolltech, care a fost cumpărat ulterior de Nokia. Acesta din urmă a vândut Qt către Digia.
2. Imaginea din primul exemplu de aplicație nu se potrivește cu codul.
Vă mulțumim pentru tutorial, îl voi urmări 🙂
Ai absolut dreptate că mi-a fost dor. Și al doilea lucru pe care ai și tu dreptate este că l-am schimbat pentru a ușura și a nu folosi clasa și am ratat modificările, erorile pentru începători. Am trecut corecțiile pentru ca un editor să le aprobe.
Nu pot modifica, o las unui editor.
Salutări.
Trimiteți un e-mail unui editor cu tutorialul corectat. îl puteți trimite la e-mailul lui @nano, care este unul dintre editori
mailto: nano.world.contact@gmail.com
vă rugăm să nu părăsiți tutorialul așa
salutări
Un lucru mă frapează: de ce folosești „din import *” în codul tău?
Salutări!
Este modul corect de a importa, atunci când importați astfel, îi spuneți ce clasă specifică a modulului doriți să importați și nu apelați întregul modul.
Salutări.
Mi se pare confuz acest gen. În plus, nu este recomandat în PEP8:
„Importurile cu metacaracter (din modul de import *) ar trebui evitate, deoarece fac neclar ce nume sunt prezente în spațiul de nume, confuzând atât cititorii, cât și multe instrumente automate ...”
Am fost ghidat în principal de coduri profesionale, cum ar fi Ninja-Ide, puteți vedea codul aici: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pySe face și în PyQt, dar în orice mod nu există nimic care să te oblige să folosești o formă sau alta.
Aici puteți vedea o discuție despre StackOverflow, despre acest lucru:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Acolo menționează avantajele și dezavantajele fiecăruia dintre stiluri.
a ok îmi pare rău nu te-am înțeles, știu asta, am făcut-o doar pentru că nu aveam de gând să dau o explicație a fiecărui element QApplication, QWidget, așa că generalizează, dar ai absolut dreptate.
Scuzați neînțelegerea.
Nu, nu ai înțeles sau nu ai acordat atenție ... Adică folosind «din modul de import *», adică mă refer la «asterisc» ... în acel post StackOverflow vorbesc despre altceva, dar încă o subliniază:
"Oricare dintre metode este acceptabilă, dar nu utilizați din importul modulului *."
Se înțelege acum?
Germanul are dreptate. La ce folosește importul de la modulul dacă importați tot conținutul cu astericul, pentru acel modul de import. Slds la fel de frumos post.
Ei bine, acum înțeleg ... oricum, nu mă lua prea mult, sunt și începător în Python. Dacă vizitați blogul meu, veți vedea că am făcut o postare similară cu a dvs., dar cu Gtk + 3 folosind PyGObject.
Salutări și mulțumiri!
Aici las Pep8, în spaniolă recomandând utilizarea im
Este foarte recomandabil să utilizați importuri relative pentru a importa codul dintr-un pachet. Utilizați întotdeauna calea absolută a pachetului pentru toate importurile. Chiar și acum, după ce PEP 328 [7] este complet implementat în Python 2.5, este foarte descurajată utilizarea importurilor relative; importurile absolute sunt mai portabile și de obicei mai lizibile.
Când importați o clasă dintr-un modul, este de obicei corect să faceți acest lucru
din myclass import MyClass
din foo.bar.yourclass importați YourClass
În ceea ce priveşte
Citeste acest: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (dezvoltator Py Py) recomandă așa ceva:
from PyQt4 import QtCore, QtGui
Îmi doream mai mult, pentru a doua parte!?
Salutări 🙂
Tutoriale foarte bune, plus că ar putea fi mai confortabil să programați.
Iată un exemplu de interfață de la zero (fără a utiliza QtDesigner).
https://github.com/xr09/metrocontador
Aplicația dhunter este excelentă, aici nici măcar nu știm cât de mult ne taxează pentru electricitate, haha salutări.
Vă mulțumim, este una dintre acele aplicații pe care o faceți pentru uz personal și le servește altora. Aici, în Cuba, chitanța este împărțită cu rata, este ușor să copiați algoritmul.
Voi fi foarte conștient de acest curs. Mă interesează mult timp aplicațiile cross-platform și cred că combinația Python + QT / Pyside este o opțiune excelentă. Salutări și felicitări pentru inițiativă
Am urmat toți pașii exact așa cum spui, dar când rulez aplicația app1.py în terminal îmi spune Traceback (ultimul apel cel mai recent):
Fișierul „app1.py”, linia 1, în
din importul PySide.QtGui *
ImportError: Niciun modul numit PySide.QtGui. Pentru ce este asta?
asta pentru că utilizați o versiune de python ca interpret implicit, dar nu aveți pyside instalat pentru acea versiune.
Încercați să adăugați la începutul fișierului:
#! usr / bin / python3
sau
#! usr / bin / python2
Vă recomand să utilizați Eclipse cu pydev și să configurați bine interpretul.
slds
#! / usr / bin / python3
sau
#! / usr / bin / python2
PySide nu este încă compatibil cu Python3, aveți grijă cu asta și, în al doilea rând, verificați importurile prin intermediul consolei interactive Python, astfel încât să știți că îl aveți instalat sau nu, instalează și pip.
Cum o verific?
Într-o consolă folosiți „Python”, oricum vă recomand să intrați în biblioteca pe care am lăsat-o mai jos în postare și să descărcați „python pentru toată lumea”, aveți nevoie de mai multă bază.
Salutări și noroc.
Mulțumesc foarte mult, mi-a fost de mare ajutor.
uite prieten F3niX Am găsit asta, se pare că pentru python 3.3.2 pe windows (ceea ce am până săptămâna viitoare) au binare pentru 32 de biți și 64 de biți, am încercat exemplul tău și funcționează cu python 3.3.2 și Folosesc PyScripter care instalează medii diferite, dacă deschizi python 3 rulează scripturile ca python 3 și dacă deschizi 2.7 le execută ca 2.7 și așa mai departe (logic trebuie să ai instalată acea versiune de python ... este inteles)
http://qt-project.org/wiki/PySide_Binaries_Windows
Te las acolo, bârfe, poate va servi altcuiva 😀
Primesc aceeași eroare.
Aveți instalat PySide?
Am instalat.
Și încercați PyQT4, instalați-l și apoi schimbați liniile PySide în PyQT4 sau PyQt4 și dați-i cursă. jojo. Folosiți eclipsa. Noroc.
Cum să fac asta?.
Mulțumesc foarte mult !!! În așteptarea celui de-al doilea capitol
Pentru această vineri s-ar putea să-l public (Universitatea mă are puțin plină) salutări.
Prietene F3nIX Aștept tutorialul tău nr. 2, 3, 4 ... N hehehe
Am deja Linux-ul foarte elegant instalat cu PySide în așteptare și totul!
Să vedem când este încurajat să arate un nou tutore 😀
Scuză-mă prietene, o am în proiecte, dar munca și studiile nu mi-au dat timp, promit să scot ceva săptămâna asta.
Un mare salut
Bună ziua, sunt interesat să învăț Python de mult timp, dar am unele îndoieli. Ceea ce vreau este să fac o aplicație pentru a îmbunătăți un pic procesul de informare al afacerii de familie unde lucrez, aș vrea să fac ceva pentru Windows, cu Windows la început, ar funcționa totul pe un singur PC și apoi că poate să fie conectat prin internet la baza de date la care s-ar conecta câteva computere. Există o mulțime de diversitate în ceea ce privește GUI-ul aplicației și asta mă amețește. Ce recomandați pentru a-i oferi un aspect modern și atractiv? Aș face, de asemenea, câteva grafice statistice și am tipări rapoarte, ce pot folosi pentru asta? Noroc
Bună, foarte bine, postarea ta, am o întrebare, aș putea vinde aplicația mea făcută cu pyside fără nicio problemă?
Ei bine, licențele sunt întotdeauna nebunești, dar licențele software gratuite vă permit, de asemenea, să vindeți software, ceea ce se întâmplă este că GPL vă obligă să distribuiți codul, spre deosebire de LGPL, care nu vă obligă să faceți acest lucru.
Oricum, nu sunt expert în acordarea de licențe.
Salutări.