Primii pași cu Python + Qt # 1

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:

3

A se vedea Codul

Îl rulăm de pe consolă astfel:

python app1.py

Această fereastră ar trebui să apară

2

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.

LINK LA FORUM

Sper că vă vor servi, îmi iau rămas bun, ca întotdeauna o plăcere de a aparține acestei minunate comunități.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   @ încredere17 el a spus

    Mulțumesc pentru postare!

  2.   Annubis el a spus

    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 🙂

    1.    f3niX el a spus

      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.

    2.    f3niX el a spus

      Nu pot modifica, o las unui editor.

      Salutări.

      1.    neysonv el a spus

        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

  3.   Germán el a spus

    Un lucru mă frapează: de ce folosești „din import *” în codul tău?

    Salutări!

    1.    f3niX el a spus

      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.

      1.    Germán el a spus

        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 ...”

        1.    f3niX el a spus

          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.

          1.    f3niX el a spus

            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.

          2.    Germán el a spus

            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?

          3.    felipe el a spus

            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.

          4.    Germán el a spus

            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!

        2.    f3niX el a spus

          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

          1.    dhunter el a spus

            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

  4.   MSX el a spus

    Îmi doream mai mult, pentru a doua parte!?
    Salutări 🙂

  5.   eliotime3000 el a spus

    Tutoriale foarte bune, plus că ar putea fi mai confortabil să programați.

  6.   dhunter el a spus

    Iată un exemplu de interfață de la zero (fără a utiliza QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX el a spus

      Aplicația dhunter este excelentă, aici nici măcar nu știm cât de mult ne taxează pentru electricitate, haha ​​salutări.

      1.    dhunter el a spus

        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.

  7.   Jose Eloy el a spus

    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ă

  8.   Bryan Rodriguez el a spus

    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?

    1.    felipe el a spus

      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

      1.    felipe el a spus

        #! / usr / bin / python3
        sau
        #! / usr / bin / python2

        1.    f3niX el a spus

          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.

          1.    Bryan Rodriguez el a spus

            Cum o verific?

          2.    f3niX el a spus

            Î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.

          3.    Bryan Rodriguez el a spus

            Mulțumesc foarte mult, mi-a fost de mare ajutor.

          4.    Mauricio Tobares el a spus

            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 😀

      2.    Bryan Rodriguez el a spus

        Primesc aceeași eroare.

        1.    Germán el a spus

          Aveți instalat PySide?

          1.    Bryan Rodriguez el a spus

            Am instalat.

        2.    felipe el a spus

          Ș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.

          1.    Bryan Rodriguez el a spus

            Cum să fac asta?.

  9.   karlinux el a spus

    Mulțumesc foarte mult !!! În așteptarea celui de-al doilea capitol

    1.    f3niX el a spus

      Pentru această vineri s-ar putea să-l public (Universitatea mă are puțin plină) salutări.

  10.   MauricioTobares el a spus

    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 😀

    1.    f3niX el a spus

      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

  11.   Dante el a spus

    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

  12.   Jorge el a spus

    Bună, foarte bine, postarea ta, am o întrebare, aș putea vinde aplicația mea făcută cu pyside fără nicio problemă?

    1.    f3niX el a spus

      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.