Prvé kroky s Python + Qt # 1

Tento tutoriál je zameraný na výučbu používania rámca QT pomocou Pythonu ako programovacieho jazyka, na tento účel môžeme použiť PySide aj PyQt, ale v tomto tutoriáli budeme používať PySide, pretože autorovi tohto tutoriálu sa viac páči licencia LGPL PySide. než GPL alebo PyQt Commercial.

Prvá ... Čo je to Python?

Podľa Wikipédie:

„Python je interpretovaný programovací jazyk na vysokej úrovni, ktorého filozofia zdôrazňuje veľmi čistú syntax a uprednostňuje čitateľný kód.“

Python je multipadradigmový programovací jazyk, takže podporuje rôzne paradigmy programovania v pythone, napríklad podporuje: Objektovo orientované programovanie (OOP), Imperatívne programovanie (štruktúrované) a v menšej miere funkčné programovanie.

Len to, že?

Nie, je to tiež jazyk dynamického písania, čo znamená, že python nám umožňuje priraďovať programu rôzne typy hodnôt k tej istej premennej počas vykonávania programu, niekto to vidí ako výhodu, iný ako nevýhodu, presvedčte sa sami .

Okrem vyššie uvedeného nám Python umožňuje (rovnako ako mnoho iných) programovanie ako vo webovom prostredí, tak aj na webovej ploche, je tiež multiplatformový, momentálne podporuje Gnu / Linux, Windows, Mac osx, Android (Ak máte je potrebné spomenúť pre vašu úpravu).

Čo je to QT?

QT je multiplatformový rámec, ktorý pôvodne vyvinula spoločnosť Nokia a ktorý sa neskôr predá spoločnosti Digia, ktorá sa používa na vývoj aplikácií. Je napísaná v jazyku C ++, ale dá sa použiť v iných jazykoch prostredníctvom nástroja Bindings (v našom prípade PySide alebo PyQt)

Rozdiely medzi PySide a PyQt

hlavne

  • Licencia, PySide je licencovaná podľa podmienok LGPL a PyQT je podľa podmienok GPL alebo podľa komerčnej licencie, takže v prípade vytvorenia uzavretej aplikácie by sme museli platiť.
  • PySide vytvára Nokia a PyQt RiverBank.
  • PySide nám šetrí problémy s používaním STR zakaždým, keď použijeme QString každého z QT objektov.

Môžeme podrobne uviesť úplné zmeny Tu.

Príprava:

Inštalujeme Qt:

Ak máme Distro s Kde, mali by sme už mať to, čo potrebujeme, ak nie:

sudo apt-get nainštalovať qt4-dev-tools

Nainštalujeme PySide:

sudo apt-get install pyside pyside-tools

Naša prvá aplikácia Python + QT

Ideme do nášho obľúbeného textového editora, odporúčam vám nainštalovať sublime-text2, ale môžete použiť ten, ktorý uprednostňujete, a my napíšeme nasledujúci kód a uložíme ho s menom, ktoré chceme vždy končiť príponou „.py“ , Uložím ako app1.py:

3

Pozri zákonník

Spustíme to z konzoly takto:

python app1.py

Toto okno by sa malo zobraziť

2

Čo? Iba to, pretože ak ste predtým mali iba konzolu, na čo sa sťažujete? Čo si čakal, Erp? poď človeče, niečo sa začne.

Teraz vysvetlíme kód:

from PySide.QtGui import *

from sys import exit, argv

Tu importujeme potrebné moduly na vykonávanie PySide.

app = QApplication(argv)

Inštanciu Qapplication vytvoríme pomocou aplikácie name.

window = Qwidget()

Vytvoríme inštanciu QWidget ().

window.setWindowTitle("Primera App PySide")

Vykonáme metódu setWindowTitle, ktorá dostane reťazec ako parameter na „nastavenie“ názvu nášho Qwidgetu.

window.show()

Ukazujeme svoje okno

exit(app.exec_())

nakoniec vykonáme nekonečný cyklus vykonávania našej QApplication ().

vďaka

Ďakujem za tých, ktorí ma tu sledovali a boli užitoční. V ďalšom návode vysvetlím, ako navrhnúť naše okná pomocou programu QT Designer a importovať ich do našich projektov.

Dodatočne pridávam odkaz na fórum desde linux kde mám malú tému s malou knižnicou pythonových tutoriálov a príručiek, ktoré obsahujú rôzne výrazy vrátane:

Základné výukové programy pre Python

wxPython

PyQt a PySide

Django

web2py

Vedecké programovanie v pythone.

A mnoho ďalších.

ODKAZ NA FÓRUM

Dúfam, že vám budú slúžiť, lúčim sa, ako vždy je potešením patriť do tejto úžasnej komunity.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   @ trust17 dijo

    Ďakujem za príspevok!

  2.   annubis dijo

    2 veci:

    1. Qt pôvodne nevyvinula Nokia, ale Trolltech, ktorú neskôr kúpila Nokia. Ten potom predal Qt spoločnosti Digia.
    2. Obrázok v prvom príklade aplikácie sa nezhoduje s kódom.

    Ďakujem za návod, budem sa ním riadiť 🙂

    1.    f3niX dijo

      Máte úplnú pravdu, že mi to chýbalo. A druhá vec, ktorú máte tiež pravdu, je, že som to zmenil, aby som uľahčil a nepoužíval triedu, a chýbala mi modifikácia, chyby začiatočníkov. Už odovzdávam opravy, aby ich mohol schváliť nejaký redaktor.

    2.    f3niX dijo

      Nemôžem upravovať, nechávam to na nejakého editora.

      Zdravím.

      1.    neysonv dijo

        Pošlite e-mailom editorovi opravený návod. môžete ho poslať na e-mail @nano, ktorý je jedným z redaktorov
        mailto: nano.world.contact@gmail.com
        prosím nenechávajte návod takto
        ide o

  3.   Nemecky dijo

    Zaráža ma jedna vec: prečo vo svojom kóde používate výraz „from import *“?

    Zdravím!

    1.    f3niX dijo

      Je to správny spôsob importu, pri takomto importovaní mu poviete, ktorú konkrétnu triedu modulu chcete importovať, a nevyvoláte celý modul.

      Zdravím.

      1.    Nemecky dijo

        Považujem to za mätúce. Ďalej sa v PEP8 neodporúča:

        „Je potrebné sa vyhnúť importu zástupných znakov (z importu modulu *), pretože nie je jasné, ktoré mená sú v mennom priestore, čo mätie čitateľov aj mnoho automatizovaných nástrojov ...“

        1.    f3niX dijo

          Riadil som sa väčšinou profesionálnymi kódmi, ako napríklad Ninja-Ide, kód si môžete pozrieť tu: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyRobí sa to aj v PyQt, ale nijako vás nenúti použiť jeden alebo druhý formulár.

          Tu môžete vidieť diskusiu o StackOverflow o tomto:

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

          Tam spomínajú klady a zápory každého zo štýlov.

          1.    f3niX dijo

            ok prepáč nepochopil som ťa, viem to, urobil som to len preto, že som nechcel vysvetľovať každý prvok QApplication, QWidget, potom zovšeobecniť, ale máš úplnú pravdu.

            Ospravedlňte nedorozumenie.

          2.    Nemecky dijo

            Nie, nepochopili ste alebo ste nevenovali pozornosť ... Mám na mysli použitie «z importu modulu *», teda «Hviezdička» ... v tom príspevku StackOverflow hovoria o niečom inom, ale stále to zdôrazňujú:

            "Každá metóda je prijateľná, ale nepoužíva sa z importu modulu *."

            Je to teraz pochopené?

          3.    felipe dijo

            Nemčina má pravdu. Na čo slúži import z modulu, ak pre tento modul importujete všetok obsah s asterikou. Slds rovnako pekný príspevok.

          4.    Nemecky dijo

            Aha, teraz to chápem ... každopádne, nebuď príliš dlho, som tiež začiatočník v Pythone. Ak navštívite môj blog, uvidíte, že som vytvoril príspevok podobný vášmu, ale s Gtk + 3 pomocou PyGObject.

            Zdravím a ďakujem!

        2.    f3niX dijo

          Tu nechávam Pep8, v španielčine odporúčajúci použitie im
          Je veľmi neodporúčané používať na importovanie kódu z balíka relatívne importy. Pre všetky importy vždy používajte absolútnu cestu balíka. Už teraz, keď je program PEP 328 [7] plne implementovaný v Pythone 2.5, sa odrádza od relatívneho importu; absolútny import je prenosnejší a zvyčajne čitateľnejší.

          Pri importe triedy z modulu je zvyčajne správne to urobiť
          z importu myclass MyClass
          z foo.bar.yourclass importuje vašu triedu

          pozdravy

          1.    lovec dijo

            Prečítaj toto: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli (vývojár core py) odporúča niečo také:


            from PyQt4 import QtCore, QtGui

  4.   MSX dijo

    Chcel som viac, lebo keď bude 2. diel!?
    Zdravím 🙂

  5.   eliotime3000 dijo

    Veľmi dobré návody a programovanie by mohlo byť pohodlnejšie.

  6.   lovec dijo

    Tu je príklad úplne nového rozhrania (bez použitia QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX dijo

      Aplikácia dhunter je vynikajúca, tu ani nevieme, koľko nám účtujú za elektrinu, haha ​​pozdravy.

      1.    lovec dijo

        Ďakujeme, je to jedna z aplikácií, ktoré človek vyrába na osobné použitie a slúži iným. Tu na Kube je účtenka rozdelená podľa sadzby, je ľahké kopírovať algoritmus.

  7.   Jose Eloy dijo

    Budem si veľmi dobre vedomý tohto kurzu. O multiplatformové aplikácie sa zaujímam už dlho a myslím si, že kombinácia Python + QT / Pyside je skvelá voľba. Zdravím a blahoželám k iniciatíve

  8.   Bryan Rodriguez dijo

    Sledoval som všetky kroky presne tak, ako hovoríte, ale keď spustím aplikáciu app1.py v termináli, povie mi to Traceback (posledný hovor naposledy):
    Súbor „app1.py“, riadok 1, v
    z importu PySide.QtGui *
    ImportError: Žiadny modul s názvom PySide.QtGui. Za čo to je ?.

    1.    felipe dijo

      je to preto, že ako predvolený tlmočník používate verziu pythonu, ale pre túto verziu nemáte nainštalovaný program pyside.

      Skúste pridať na začiatok súboru:
      #! usr / bin / python3
      alebo iný
      #! usr / bin / python2

      Odporúčam vám použiť Eclipse s pydev a dobre nakonfigurovať tlmočníka.
      SLDs

      1.    felipe dijo

        #! / usr / bin / python3
        alebo iný
        #! / usr / bin / python2

        1.    f3niX dijo

          PySide ešte nie je kompatibilný s Python3, buďte s tým opatrní a po druhé, kontroluje importy cez interaktívnu konzolu pythonu, takže viete, že ho máte nainštalovaný alebo nie, nainštaluje tiež pip.

          1.    Bryan Rodriguez dijo

            Ako to overím?

          2.    f3niX dijo

            V konzole používajte "Python", každopádne vám odporúčam vstúpiť do knižnice, ktorú som v príspevku nechal dole a stiahnuť si "python pre všetkých", potrebujete viac základne.

            Zdravím a šťastím.

          3.    Bryan Rodriguez dijo

            Ďakujem pekne, veľmi mi pomohlo.

          4.    Mauricio Tobares dijo

            look friend F3niX Našiel som to, zdá sa, že pre python 3.3.2 na windows (čo mám až do budúceho týždňa) majú binárne súbory pre 32 bitov a 64 bitov, skúsil som tvoj príklad a funguje to s pythonom 3.3.2 a Používam PyScripter, ktorý inštaluje rôzne prostredia, ak otvoríte python 3, spustí skripty ako python 3 a ak otvoríte 2.7, spustí ich ako 2.7 a tak ďalej (logicky musíte mať nainštalovanú túto verziu pythonu ... rozumie sa)

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

            Nechám ťa tam, klebety, možno to bude slúžiť niekomu inému 😀

      2.    Bryan Rodriguez dijo

        Mám rovnakú chybu.

        1.    Nemecky dijo

          Máte nainštalovaný PySide?

          1.    Bryan Rodriguez dijo

            Mám to nainštalované.

        2.    felipe dijo

          A skúste to nainštalovať pomocou PyQT4, potom zmeňte riadky PySide za PyQT4 alebo PyQt4 a spustite ich. jojo. Použite zatmenie. Šťastie.

          1.    Bryan Rodriguez dijo

            Ako to urobím?

  9.   karlinux dijo

    Ďakujem mnohokrát !!! Čaká sa na druhú kapitolu

    1.    f3niX dijo

      K tomuto piatku by som ho mohol zverejniť (Univerzita ma trochu zaplnila) pozdravmi.

  10.   Mauricio Tobares dijo

    Priateľ F3nIX, čakám na tvoj tutoriál č. 2, 3, 4 ... N hehehe

    Už mám nainštalovaný môj veľmi elegantný linux s PySide čakaním a všetkým!

    Uvidíme, kedy bude vyzvaný, aby ukázal nového lektora 😀

    1.    f3niX dijo

      Prepáčte, priateľu, mám to v prievane, ale práca a štúdium mi nedali čas, sľubujem, že tento týždeň niečo vyjdem.

      Veľký pozdrav

  11.   Dante dijo

    Dobrý deň, už dlhší čas sa zaujímam o učenie jazyka Python, ale mám nejaké pochybnosti. To, čo chcem, je podať žiadosť o trochu vylepšenie informačného procesu v rodinnom podniku, kde pracujem, chcel by som urobiť niečo pre Windows, najskôr so systémom Windows, všetko by to fungovalo na jednom počítači a potom, že to dokáže byť pripojený cez internet k databáze, ku ktorej by sa mohlo pripojiť niekoľko počítačov. Pokiaľ ide o grafické používateľské rozhranie aplikácie, existuje veľká rozmanitosť, a to ma mrzí. Čo odporúčate, aby ste tomu dodali moderný a atraktívny vzhľad? Robil by som aj štatistickú grafiku a tlačové zostavy, čo na to môžem použiť? Na zdravie

  12.   Jorge dijo

    Dobrý deň, veľmi dobre, váš príspevok, mám otázku, môžem bez problémov predať svoju aplikáciu vyrobenú pomocou pyside?

    1.    f3niX dijo

      Licencie sú vždy bláznivé, ale softvérové ​​licencie zadarmo vám umožňujú aj predaj softvéru. Stane sa však to, že vás spoločnosť GPL núti distribuovať kód, na rozdiel od LGPL, ktoré vás k tomu nenúti.

      V každom prípade nie som odborník na licencie.

      Zdravím.