Esimesed sammud rakendusega Python + Qt # 1

See õpetus on keskendunud QT raamistiku kasutamise õpetamisele, kasutades Pythoni kui programmeerimiskeelt, selleks võime kasutada nii PySide kui ka PyQt, kuid selles õpetuses kasutame PySide'i, sest selle õpetuse autorile meeldib LGPL PySide litsents paremini. kui GPL või PyQt Commercial.

Esiteks ... Mis on Python?

Vikipeedia andmetel:

"Python on väga kõrgel tasemel tõlgendatud programmeerimiskeel, mille filosoofia rõhutab väga puhast süntaksit ja soosib loetavat koodi."

Python on multipadradigmi programmeerimiskeel, seega toetab see erinevaid Pythoni programmeerimisparadigmasid, näiteks toetab: objektile orienteeritud programmeerimist (OOP), imperatiivset programmeerimist (struktureeritud) ja vähemal määral ka funktsionaalset programmeerimist.

Ainult et?

Ei, see on ka dünaamiline kirjutamiskeel, mis tähendab, et python võimaldab meil programmi täitmise ajal samale muutujale määrata erinevat tüüpi väärtusi, mõned näevad seda eelisena, teised puudusena, veenduge ise .

Lisaks juba mainitule võimaldab Python meile (nagu paljudele teistele) programmeerimist nii veebikeskkonnas kui veebitöölaual, see on ka platvormidevaheline, praegu toetab see Gnu / Linuxi, Windowsi, Mac osxi, Androidi (kui peate neid oma modifitseerimine).

Mis on QT?

QT on mitmeplatvormiline raamistik, mille algselt on välja töötanud Nokia ja mis hiljem müüakse Digiale, mida kasutatakse rakenduste arendamiseks, see on kirjutatud C ++ keeles, kuid seda saab sidumiste kaudu kasutada (meie puhul PySide või PyQt )

PySide ja PyQt erinevused

Peamiselt

  • Litsents, PySide on litsentseeritud LGPL-i tingimustel ja PyQT on GPL-i tingimuste või kaubandusliku litsentsi alusel, seega peaksime suletud rakenduse loomisel maksma.
  • PySide on loonud Nokia ja PyQt RiverBank.
  • PySide säästab STR-i kasutamise probleeme iga kord, kui kasutame iga QT-objekti QStringi.

Saame üksikasjalikult kirjeldada kõiki muudatusi Kelle oma.

Ettevalmistus:

Installime Qt:

Kui meil on Kde-ga distro, siis peaksime juba vajaliku saama, kui mitte:

sudo apt-get install qt4-dev-tools

Installime PySide:

sudo apt-get install pyside pyside-tools

Meie esimene Python + QT rakendus

Me läheme meie lemmiktekstiredaktorisse, soovitan teil installida sublime-text2, kuid võite kasutada seda, mida soovite, ja sisestame järgmise koodi ja salvestame selle nimega, mida me tahame alati laiendiga ".py", ma teen Salvestan kui app1.py:

3

Vt kood

Me töötame seda konsoolilt järgmiselt:

python app1.py

See aken peaks ilmuma

2

Mis? Ainult see, sest kui teil oli varem ainult konsool, siis mida te kaebate? Mida sa ootasid, Erp? tule inimesele, sest midagi algab.

Nüüd selgitame koodi:

from PySide.QtGui import *

from sys import exit, argv

Siit impordime PySide'i käivitamiseks vajalikud moodulid.

app = QApplication(argv)

Loome Qapplicationi eksemplari nimerakendusega.

window = Qwidget()

Loome QWidget () eksemplari.

window.setWindowTitle("Primera App PySide")

Teostame meetodi setWindowTitle, mis saab parameetrina Stringi, et "määrata" meie Qwidgeti pealkiri.

window.show()

Näitame oma akent

exit(app.exec_())

lõpuks viime läbi QA-rakenduse () lõpmatu tsükli.

tänan

Tänan teid nende eest, kes on mind siin jälginud ja olnud kasulikud. Järgmise õpetuse jaoks selgitan, kuidas QT Designeriga meie aknaid kujundada ja neid meie projektidesse importida.

Lisaks lisan foorumi lingi desde linux kus mul on väike teema koos väikese Pythoni õpetuste ja juhendite raamatukoguga, mis sisaldab erinevaid termineid, sealhulgas:

Põhilised Pythoni õpetused

wxPython

PyQt ja PySide

Django

web2py

Teaduslik programmeerimine püütonis.

Ja paljud teised.

LINK FOORUMIGA

Loodan, et nad teenivad teid, jätan hüvasti, nagu alati rõõm kuuluda sellesse imelisse kogukonda.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   @ trust17 DIJO

    Aitäh postituse eest!

  2.   annubis DIJO

    2 asja:

    1. Algselt ei töötanud Qt välja Nokia, vaid Trolltech, mille hiljem ostis Nokia. Seejärel müüs viimane Qt Digiale.
    2. Esimese rakenduse näite pilt ei ühti koodiga.

    Aitäh õpetuse eest, järgin seda 🙂

    1.    f3niX DIJO

      Sul on täiesti õigus, mul jäi see puudu. Ja teine ​​asi, mis teil ka õigus on, on see, et muutsin seda lihtsamaks muutmiseks ja klassi mittekasutamiseks ning igatsesin muudatusi, algajate vead. Juba edastan parandused, et mõni redaktor need heaks kiidaks.

    2.    f3niX DIJO

      Ma ei saa muuta, jätan selle mõnele redaktorile.

      Tervitused.

      1.    neysonv DIJO

        Parandatud juhendajaga saatke redaktor meilisõnumiga. saate selle saata @nano e-posti aadressile, kes on üks toimetajatest
        mailto: nano.world.contact@gmail.com
        palun ärge jätke õpetust selliselt
        osas

  3.   Germán DIJO

    Üks asi rabab mind: miks te kasutate oma koodis sõna "import *"?

    Tervitused!

    1.    f3niX DIJO

      See on õige viis importimiseks, niimoodi importides ütlete talle, millist konkreetset mooduli klassi soovite importida, ja te ei helista kogu moodulile.

      Tervitused.

      1.    Germán DIJO

        Minu arvates on selline segane. Lisaks ei soovitata seda PEP8-s:

        "Välistada tuleks metamärgi importimist (moodulite impordist *), kuna need muudavad ebaselgeks, millised nimed nimeruumis esinevad, tekitades segadust nii lugejate kui ka paljude automatiseeritud tööriistade jaoks ..."

        1.    f3niX DIJO

          Olen juhindunud peamiselt kutsekoodidest, näiteks Ninja-Ide, koodi näete siit: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pySeda tehakse ka PyQtis, kuid ükskõik millises vormis ei sunni miski sind üht või teist vormi kasutama.

          Siit näete StackOverflow teemalist arutelu selle kohta:

          http://stackoverflow.com/questions/710551/import-module-or-from-module-import

          Seal mainivad nad iga stiili plusse ja miinuseid.

          1.    f3niX DIJO

            ok, vabandust, et ma ei saanud sinust aru, ma tean seda, tegin seda ainult seetõttu, et ma ei hakanud iga elemendi kohta QApplication, QWidget selgitust andma, siis üldista, kuid sul on täiesti õigus.

            Vabandage arusaamatust.

          2.    Germán DIJO

            Ei, te ei mõistnud või ei pööranud tähelepanu ... Pean silmas «mooduli impordist *» kasutamist, see tähendab, et mõtlen «tärn» ... selles StackOverflow postituses, kus nad räägivad millestki muust, kuid nad rõhutavad seda ikkagi:

            "Mõlemad meetodid on vastuvõetavad, kuid ärge kasutage neid moodulite impordist *."

            Kas sellest on nüüd aru saadud?

          3.    Felipe DIJO

            Saksa keelel on õigus. Mis kasu on mooduli importimisest, kui impordite kogu impordimooduli asteriksiga sisu. Slds sama tore postitus.

          4.    Germán DIJO

            Ahjaa, nüüd saan aru ... igatahes, ära võta mind liiga kaua, olen ka Pythoni algaja. Kui peatute minu blogis, näete, et tegin PyGObjecti abil postituse, mis sarnaneb teie omaga, kuid Gtk + 3-ga.

            Tervitused ja tänud!

        2.    f3niX DIJO

          Siit jätan Pep8, soovitades hispaania keeles kasutada im
          Paketist koodi importimiseks on väga soovitav kasutada suhtelist importi. Kasutage kogu impordi jaoks alati paketi absoluutset teed. Isegi praegu, kui PEP 328 [7] on Python 2.5-s täielikult rakendatud, ei soovitata suhtelise impordi kasutamist tõsiselt; absoluutne import on kaasaskantavam ja tavaliselt loetavam.

          Klassi importimisel moodulist on seda tavaliselt õige teha
          myclassist importige MyClass
          saidilt foo.bar.yourclass importige oma klass

          seoses

          1.    dhunter DIJO

            Loe seda: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli (põhiline py arendaja) soovitab midagi sellist:


            from PyQt4 import QtCore, QtGui

  4.   MSX DIJO

    Tahtsin rohkem, millal 2. osa!?
    Tervitused 🙂

  5.   eliotime3000 DIJO

    Väga head õpetused, pluss see võib olla mugavam programmeerida.

  6.   dhunter DIJO

    Siin on näide liidesest nullist (ilma QtDesignerit kasutamata).

    https://github.com/xr09/metrocontador

    1.    f3niX DIJO

      Dhunteri rakendus on suurepärane, siin me isegi ei tea, kui palju nad meile elektri eest küsivad, haha ​​tervitused.

      1.    dhunter DIJO

        Aitäh, see on üks neist rakendustest, mida üks teeb isiklikuks kasutamiseks ja teenib teisi. Siin Kuubas on kviitung jaotatud kursiga, algoritmi on lihtne kopeerida.

  7.   Jose Eloy DIJO

    Olen sellest kursusest väga teadlik. Platvormiülesed rakendused on mind pikka aega huvitanud ja arvan, et Python + QT / Pyside kombinatsioon on suurepärane võimalus. Tervitused ja õnnitlused algatuse eest

  8.   Bryan Rodriguez DIJO

    Järgisin kõiki samme täpselt nii, nagu te ütlete, kuid kui rakenduses app1.py käivitan, ütleb see mulle Tracebacki (viimane kõne oli viimane):
    Faili "app1.py" 1. rida sisse
    PySide.QtGui import *
    ImportError: ükski moodul nimega PySide.QtGui. Mis see on?

    1.    Felipe DIJO

      Seda seetõttu, et kasutate vaiketõlgina pythoni versiooni, kuid teil pole selle versiooni jaoks püside installimist.

      Proovige lisada faili algusesse:
      #! usr / bin / python3
      või muidu
      #! usr / bin / python2

      Soovitan teil kasutada Eclipse'i koos pydeviga ja tõlgi õigesti konfigureerida.
      slds

      1.    Felipe DIJO

        #! / usr / bin / python3
        või muidu
        #! / usr / bin / python2

        1.    f3niX DIJO

          PySide ei ühildu veel Python3-ga, olge sellega ettevaatlik ja teiseks kontrollige importi interaktiivse pythoni konsooli kaudu, nii et teate, et see on teil installitud või mitte, see installib ka pipi.

          1.    Bryan Rodriguez DIJO

            Kuidas seda kontrollida?

          2.    f3niX DIJO

            Konsooli kasutamisel "Python" soovitan igatahes sisestada teeki, mille ma postitusse alla jätsin, ja alla laadida "python kõigile", vajate rohkem baasi.

            Tervitused ja õnne.

          3.    Bryan Rodriguez DIJO

            Suur aitäh, see oli mulle väga kasulik.

          4.    Mauricio Tobares DIJO

            vaata sõber F3niX Ma leidsin selle, tundub, et Windowsi pythoni 3.3.2 puhul (mis mul on järgmise nädalani) on binaarfailid 32 bitti ja 64 bitiga, proovisin teie näidet ja see töötab Python 3.3.2 ja Ma kasutan PyScripterit, mis installib erinevaid keskkondi. Kui avate python 3, käivitab see skriptid python 3-na ja kui avate 2.7, täidab see neid kui 2.7 ja nii edasi (loogiliselt peab teil olema see pythoni versioon installitud ... seda mõistetakse)

            http://qt-project.org/wiki/PySide_Binaries_Windows

            Jätan su sinna, kuulujutud, võib-olla teenib see kedagi teist 😀

      2.    Bryan Rodriguez DIJO

        Saan sama vea.

        1.    Germán DIJO

          Kas teil on PySide installitud?

          1.    Bryan Rodriguez DIJO

            Mul on see installitud.

        2.    Felipe DIJO

          Ja proovige PyQT4-ga installida ja seejärel muuta PySide read PyQT4 või PyQt4 jaoks ja lasta see käitada. jojo. Kasutage varjutust. Õnne.

          1.    Bryan Rodriguez DIJO

            Kuidas ma seda teen?

  9.   karlinux DIJO

    Tänan teid väga !!! Teise peatüki ootamine

    1.    f3niX DIJO

      Selleks reedeks võin avaldada selle (Ülikoolil on mul natuke täis) tervitused.

  10.   MauricioTobarid DIJO

    Sõber F3nIX ootan teie õpetust nr 2, 3, 4 ... N hehehe

    Mul on juba installitud minu väga elegantne linux, kus PySide ootab ja kõik!

    Vaatame, millal teda julgustatakse uut juhendajat näitama 😀

    1.    f3niX DIJO

      Vabandage, sõber, mul on see mustandites, kuid töö ja õppimine pole mulle aega andnud, luban sel nädalal midagi välja saada.

      Suur tervitus

  11.   Dante DIJO

    Tere, mind on pikka aega huvitanud Pythoni õppimine, kuid mul on kahtlusi. Ma tahan teha rakenduse pereettevõtte, kus ma töötan, infoprotsessi natuke paremaks muutmiseks. Tahaksin midagi teha akende jaoks, algul aknad, see töötaks kõik ühe arvutiga ja siis saaks olema Interneti kaudu ühendatud andmebaasiga, millega paar arvutit ühendaksid. Rakenduse GUI-de osas on palju mitmekesisust ja see ajab mind uimaseks. Mida soovitate anda sellele kaasaegne ja atraktiivne välimus? Teeksin ka statistilist graafikat ja prindiks aruandeid, mida ma saan selleks kasutada? Terviseks

  12.   jorge DIJO

    Tere, väga hea, teie postitus, mul on küsimus, kas ma saaksin oma pyside abil tehtud rakendust probleemideta müüa?

    1.    f3niX DIJO

      Noh, litsentsid on alati pöörased, kuid tasuta tarkvara litsentsid võimaldavad teil ka tarkvara müüa, juhtub see, et GPL sunnib teid koodi levitama, erinevalt LGPL-st, mis ei sunni teid seda tegema.

      Igal juhul pole ma litsentsimise ekspert.

      Tervitused.