Ensimmäiset vaiheet Python + Qt # 1: llä

Tämä opetusohjelma on keskittynyt QT-kehyksen käytön opettamiseen Pythonia ohjelmointikielenä, jota varten voimme käyttää sekä PySidea että PyQt: ää, mutta tässä opetusohjelmassa käytämme PySidea, koska tämän opetusohjelman kirjoittaja pitää LGPL PySide -lisenssistä paremmin. kuin GPL tai PyQt Commercial.

Ensin ... Mikä on Python?

Wikipedian mukaan:

"Python on erittäin korkeatasoinen tulkittu ohjelmointikieli, jonka filosofia korostaa erittäin puhdasta syntaksia ja edistää luettavaa koodia."

Python on multipadradigm-ohjelmointikieli, joten se tukee erilaisia ​​python-ohjelmointiparadigmoja, esimerkiksi: Object Oriented Programming (OOP), Imperative Programming (Strukturoitu) ja vähemmässä määrin Funktionaalinen ohjelmointi.

Vain se?

Ei, se on myös dynaaminen kirjoituskieli, mikä tarkoittaa, että python antaa meille mahdollisuuden määrittää erityyppisiä arvoja samalle muuttujalle ohjelman suorituksen aikana, jotkut pitävät sitä etuna, toiset haittana, katso itse.

Edellä mainitun lisäksi Python sallii meille (kuten monille muille) ohjelmoinnin sekä verkkoympäristössä että web-työpöydällä, se on myös alustojen välinen, tällä hetkellä se tukee Gnu / Linuxia, Windowsia, Mac osxia, Androidia (jos sinun on mainittava ne muutos).

Mikä on QT?

QT on monitasoinen kehys, jonka Nokia on alun perin kehittänyt ja joka myöhemmin myydään Digialle ja jota käytetään sovelluskehitykseen, kirjoitetaan C ++: lla, mutta sitä voidaan käyttää muilla kielillä Bindingsin kautta (meidän tapauksessamme PySide tai PyQt )

PySiden ja PyQt: n erot

pääasiallisesti

  • Lisenssi, PySide on lisensoitu LGPL: n ehtojen mukaisesti ja PyQT on GPL: n ehtojen tai kaupallisen lisenssin alainen, joten joudumme maksamaan, jos luomme suljetun sovelluksen.
  • PySiden on luonut Nokia ja PyQt RiverBank.
  • PySide säästää meille ongelmia STR: n käytöstä aina, kun käytämme jokaisen QT-objektin QStringia.

Voimme kuvata täydelliset muutokset Täällä.

Valmistelu:

Asennamme Qt:

Jos meillä on häiriö Kde: n kanssa, meillä pitäisi olla tarvitsemamme, ellei:

sudo apt-get install qt4-dev-tools

Asennamme PySide:

sudo apt-get install pyside pyside-tools

Ensimmäinen Python + QT -sovelluksemme

Käymme suosikkitekstieditorissamme, suosittelen, että asennat sublime-text2, mutta voit käyttää haluamaasi, ja kirjoitamme seuraavan koodin ja tallennamme sen nimellä, jonka haluamme aina päättyvän laajennukseen ".py", aion Tallennan nimellä app1.py:

3

Katso Koodi

Suoritamme sitä konsolista näin:

python app1.py

Tämän ikkunan pitäisi tulla näkyviin

2

Mitä? Ainoa, koska jos sinulla olisi ollut vain konsoli aiemmin, mistä valitat? Mitä odotit, Erp? tule mies, jotain alkaa.

Selitetään nyt koodi:

from PySide.QtGui import *

from sys import exit, argv

Tuodaan tässä tarvittavat moduulit PySide-suoritusta varten.

app = QApplication(argv)

Luomme Qapplication-ilmentymän nimisovelluksella.

window = Qwidget()

Luomme QWidget () -esiintymän.

window.setWindowTitle("Primera App PySide")

Suoritamme setWindowTitle-menetelmän, joka vastaanottaa merkkijonon parametrina Qwidgetin otsikon "asettamiseksi".

window.show()

Näytämme ikkunamme

exit(app.exec_())

lopuksi suoritamme QA-sovelluksemme () loputon suoritussykli.

kiitos

Kiitos niille, jotka ovat seuranneet minua täällä ja ovat olleet hyödyllisiä. Seuraavaa opetusohjelmaa varten selitän, kuinka suunnitella ikkunamme QT Designerilla ja tuoda ne projektiisi.

Lisäksi lisään linkin foorumille desde linux jossa minulla on pieni teema, jossa on pieni kirjasto python-opetusohjelmia ja -oppaita, jotka sisältävät erilaisia ​​termejä, mukaan lukien:

Pythonin perusoppaat

wxPython

PyQt ja PySide

Django

web2py

Tieteellinen ohjelmointi pythonissa.

Ja paljon muuta.

LINKKI FOORUMILLE

Toivon, että he palvelevat sinua, sanon hyvästit, kuten aina ilo kuulua tähän upeaan yhteisöön.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   @ luottamus17 dijo

    Kiitos viestistä!

  2.   Annubis dijo

    2 asiaa:

    1. Qt: ta ei alun perin kehittänyt Nokia, vaan Trolltech, jonka Nokia myöhemmin osti. Jälkimmäinen myi sitten Qt: n Digialle.
    2. Ensimmäisen sovellusesimerkin kuva ei vastaa koodia.

    Kiitos opetusohjelmasta, seuraan sitä 🙂

    1.    f3niX dijo

      Olet aivan oikeassa, kaipasin sitä. Ja toinen asia, jonka olet myös oikeassa, on se, että muutin sen helpottamiseksi enkä käyttänyt luokkaa ja kaipasin muutos-, aloittelijavirheet. Välitin jo joidenkin toimittajien korjaukset hyväksyä ne.

    2.    f3niX dijo

      En voi muokata, jätän sen jollekin editorille.

      Tervehdys.

      1.    neysonv dijo

        Lähetä korjattu opetusohjelma editorille. Voit lähettää sen sähköpostiosoitteeseen @nano, joka on yksi toimittajista
        mailto: nano.world.contact@gmail.com
        älä jätä opetusohjelmaa näin
        terveiset

  3.   Saksan kieli dijo

    Yksi asia saa minut mieleen: miksi käytät koodissasi "from import *"?

    Tervehdys!

    1.    f3niX dijo

      Se on oikea tapa tuoda, kun tuot näin, kerrot sille, minkä luokan moduulista haluat tuoda, etkä soita koko moduuliin.

      Tervehdys.

      1.    Saksan kieli dijo

        Minusta sellainen sekava. Lisäksi sitä ei suositella PEP8: ssa:

        "Jokerimerkkien tuontia (moduulien tuonnista *) tulisi välttää, koska niiden vuoksi on epäselvää, mitkä nimet ovat nimitilassa, mikä hämmentää sekä lukijoita että monia automaattisia työkaluja ..."

        1.    f3niX dijo

          Olen ohjannut enimmäkseen ammattikoodeja, kuten Ninja-Ide, näet koodin täältä: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pySe tehdään myös PyQt: ssä, mutta millään tavalla mikään ei pakota sinua käyttämään yhtä tai toista lomaketta.

          Täällä voit nähdä StackOverflow-keskustelun tästä:

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

          Siellä he mainitsevat kunkin tyylin hyvät ja huonot puolet.

          1.    f3niX dijo

            ok pahoillani en ymmärtänyt sinua, tiedän sen, tein sen vain, koska en aio antaa selitystä jokaiselle QApplication, QWidget -elementille, joten yleistä, mutta olet aivan oikeassa.

            Anteeksi väärinkäsitys.

          2.    Saksan kieli dijo

            Ei, et ymmärtänyt tai et kiinnittänyt huomiota ... tarkoitan käyttävän «moduulin tuonnista *», ts. «Tähtiä» ... siinä StackOverflow-viestissä, jossa he puhuvat jostakin muusta, mutta he silti korostavat sitä:

            "Kumpikin menetelmä on hyväksyttävä, mutta älä käytä moduulin tuonnista *."

            Ymmärretäänkö se nyt?

          3.    Felipe dijo

            Saksa on oikeassa. Mitä hyötyä moduulien tuonnista on, jos tuot kaiken sisällön tähdellä tuontimoduulille. Slds yhtä hyvä viesti.

          4.    Saksan kieli dijo

            Ahh, nyt ymmärrän ... joka tapauksessa, älä vie minua liian kauan, olen myös aloittelija Pythonissa. Jos käydään blogissani läpi, huomaat, että tein samanlaisen viestin kuin sinun, mutta Gtk + 3: lla PyGObjectia käyttäen.

            Terveisiä ja kiitoksia!

        2.    f3niX dijo

          Täällä jätän Pep8: n espanjaksi suosittelemalla im: n käyttöä
          On erittäin suositeltavaa käyttää suhteellista tuontia koodin tuontiin paketista. Käytä aina paketin absoluuttista polkua kaikkeen tuontiin. Jopa nyt, kun PEP 328 [7] on täysin toteutettu Python 2.5: ssa, suhteellisen tuonnin käyttöä ei suositella vakavasti; absoluuttinen tuonti on kannettavampaa ja yleensä luettavampaa.

          Kun tuot luokan luokasta moduulista, se on yleensä oikein tehdä
          myclassista tuo MyClass
          tuoda YourClass osoitteesta foo.bar.yourclass

          terveiset

          1.    metsästäjä dijo

            Lue tämä: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli (ydin py-kehittäjä) suosittelee jotain tällaista:


            from PyQt4 import QtCore, QtGui

  4.   MSX dijo

    Halusin lisää, koska kun 2. osa!?
    Terveisiä 🙂

  5.   eliotime3000 dijo

    Erittäin hyvät opetusohjelmat, ja se voi olla mukavampaa ohjelmoida.

  6.   metsästäjä dijo

    Tässä on esimerkki käyttöliittymästä tyhjästä (käyttämättä QtDesigneria).

    https://github.com/xr09/metrocontador

    1.    f3niX dijo

      Dhunter-sovellus on erinomainen, täällä emme edes tiedä, kuinka paljon he veloittavat meiltä sähköä, haha ​​terveisiä.

      1.    metsästäjä dijo

        Kiitos, se on yksi niistä sovelluksista, jotka tehdään henkilökohtaiseen käyttöön ja palvellaan muita. Täällä Kuubassa kuitti on eritelty kurssin mukaan, algoritmi on helppo kopioida.

  7.   Jose Eloy dijo

    Olen hyvin tietoinen tästä kurssista. Olen ollut kiinnostunut alustojen välisistä sovelluksista pitkään ja mielestäni Python + QT / Pyside -yhdistelmä on loistava vaihtoehto. Onnittelut ja onnittelut aloitteesta

  8.   Bryan Rodriguez dijo

    Seurasin kaikkia vaiheita täsmälleen niin kuin sanoit, mutta kun suoritan app1.py -sovelluksen terminaalissa, se kertoo minulle Tracebackin (viimeisin puhelu viimeisin):
    Tiedosto "app1.py", rivi 1, sisään
    PySide.QtGui-tuonnista *
    ImportError: Ei PySide.QtGui-nimistä moduulia. Mitä tämä on?

    1.    Felipe dijo

      Tämä johtuu siitä, että käytät python-versiota oletustulkkina, mutta pysideä ei ole asennettu tälle versiolle.

      Yritä lisätä tiedoston alkuun:
      #! usr / bin / python3
      tai muuten
      #! usr / bin / python2

      Suosittelen, että käytät Eclipseä pydevin kanssa ja määrität tulkin hyvin.
      alialuetunnuksia

      1.    Felipe dijo

        #! / Usr / bin / python3
        tai muuten
        #! / Usr / bin / python2

        1.    f3niX dijo

          PySide ei ole vielä yhteensopiva Python3: n kanssa, ole varovainen sen suhteen ja toiseksi tarkista tuonti interaktiivisen python-konsolin kautta, jotta tiedät, että sinulla on se asennettuna tai ei, se asentaa myös pipin.

          1.    Bryan Rodriguez dijo

            Kuinka voin vahvistaa sen?

          2.    f3niX dijo

            Konsolissa "Python" -käyttöä varten suosittelen joka tapauksessa, että kirjoitat kirjastoon, jonka jätin alapuolelle viestiin, ja lataa "python kaikille", tarvitset lisää tukiasemaa.

            Terveisiä ja onnea.

          3.    Bryan Rodriguez dijo

            Paljon kiitoksia, se oli minulle erittäin hyödyllinen.

          4.    Mauricio Tobares dijo

            Katso ystävä F3niX Löysin tämän, näyttää siltä, ​​että python 3.3.2: lla Windowsissa (mitä minulla on ensi viikkoon saakka) heillä on binääriä 32 bittiä ja 64 bittiä, kokeilin esimerkkiäsi ja se toimii python 3.3.2: n kanssa Käytän PyScripteriä, joka asentaa erilaisia ​​ympäristöjä, jos avaat python 3: n, se suorittaa komentosarjat python 3: na ja jos avaat 2.7: n, se suorittaa ne nimellä 2.7 ja niin edelleen (loogisesti sinulla on oltava pythonin versio asennettuna ... se on ymmärretty)

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

            Jätän sinut sinne, juorut, ehkä se palvelee jotakuta muuta 😀

      2.    Bryan Rodriguez dijo

        Saan saman virheen.

        1.    Saksan kieli dijo

          Onko sinulla PySide asennettuna?

          1.    Bryan Rodriguez dijo

            Olen asentanut sen.

        2.    Felipe dijo

          Kokeile PyQT4: tä, asenna se ja vaihda sitten PySide-linjat PyQT4: ksi tai PyQt4: ksi ja anna sen suorittaa. jojo. Käytä pimennystä. Onnea.

          1.    Bryan Rodriguez dijo

            Kuinka teen sen?

  9.   karlinux dijo

    Kiitos paljon !!! Odotetaan toista lukua

    1.    f3niX dijo

      Tänä perjantaina voin julkaista sen (Yliopistossa on minulle vähän täynnä) terveisiä

  10.   MauricioTobares dijo

    Ystävä F3nIX Odotan opetusohjelmasi nro 2, 3, 4… N hehehe

    Minulla on jo asennettu erittäin tyylikäs linuxi, PySide odottaa ja kaikki!

    Katsotaanpa, milloin häntä kannustetaan näyttämään uusi ohjaaja 😀

    1.    f3niX dijo

      Anteeksi ystäväni, minulla on se luonnoksissa, mutta työ ja opiskelu eivät ole antaneet minulle aikaa, lupaan saada jotain tällä viikolla.

      Suuri tervehdys

  11.   Dante dijo

    Hei, olen ollut kiinnostunut Pythonin oppimisesta pitkään, mutta epäilen. Haluan tehdä sovelluksen, jolla parannetaan hieman perheyrityksen tietoprosessia, jossa työskentelen, haluaisin tehdä jotain ikkunoille, Windowsin aluksi, se toimisi kaikki yhdellä tietokoneella ja sitten se voisi olla yhteydessä Internetin kautta tietokantaan, johon muutama tietokone olisi yhteydessä. Sovelluksen käyttöliittymien suhteen on paljon monimuotoisuutta ja se saa minut huimaamaan. Mitä suosittelisit antamaan sille modernin ja viehättävän ilmeen? Tein myös joitain tilastokaavioita ja tulostan raportteja, mitä voin käyttää siihen? Kippis

  12.   Jorge dijo

    Hei, erittäin hyvä viesti, minulla on kysymys. Voinko myydä pysidellä tehdyn sovellukseni ilman mitään ongelmia?

    1.    f3niX dijo

      Lisenssit ovat aina hulluja, mutta ilmaisten ohjelmistolisenssien avulla voit myös myydä ohjelmistoja. GPL pakottaa sinut jakamaan koodia, toisin kuin LGPL, mikä ei pakota sinua tekemään niin.

      Joka tapauksessa en ole lisensointiasiantuntija.

      Tervehdys.