První kroky s Python + Qt # 1

Tento kurz je zaměřen na výuku používání rámce QT pomocí Pythonu jako programovacího jazyka, k tomu můžeme použít jak PySide, tak PyQt, ale v tomto tutoriálu použijeme PySide, protože autor tohoto tutoriálu má raději licenci LGPL PySide. než GPL nebo PyQt Commercial.

Nejprve ... Co je to Python?

Podle Wikipedie:

„Python je interpretovaný programovací jazyk na vysoké úrovni, jehož filozofie zdůrazňuje velmi čistou syntaxi a napomáhá čitelnému kódu.“

Python je multipadradigmový programovací jazyk, takže podporuje různá paradigmata programování v pythonu, například podporuje: Object Oriented Programming (OOP), Imperative Programming (Structured) a v menší míře funkční programování.

Jen to, že?

Ne, je to také jazyk pro dynamické psaní, což znamená, že python nám umožňuje při provádění programu přiřadit různé typy hodnot ke stejné proměnné, někteří to vidí jako výhodu, jiní jako nevýhodu, přesvědčte se sami.

Kromě výše uvedeného nám Python umožňuje (stejně jako mnoho dalších) programování jak ve webovém prostředí, tak na webové ploše, je také multiplatformní, aktuálně podporuje Gnu / Linux, Windows, Mac osx, Android (Pokud je potřebujete zmínit pro svůj modifikace).

Co je QT?

QT je multiplatformní framework, původně vyvinutý společností Nokia, který se později prodává společnosti Digia, která se používá pro vývoj aplikací, je napsána v C ++, ale lze ji použít v jiných jazycích prostřednictvím vazeb (v našem případě PySide nebo PyQt)

Rozdíly mezi PySide a PyQt

Hlavně

  • Licence, PySide je licencován podle podmínek LGPL a PyQT je podle podmínek GPL nebo podle komerční licence, takže v případě vytvoření uzavřené aplikace budeme muset zaplatit.
  • PySide vytváří Nokia a PyQt RiverBank.
  • PySide nám šetří potíže s používáním STR pokaždé, když použijeme QString každého z QT objektů.

Můžeme podrobně popsat úplné změny Zde.

Příprava:

Nainstalujeme Qt:

Pokud máme distro s Kde, měli bychom mít už to, co potřebujeme, pokud ne:

sudo apt-get install qt4-dev-tools

Nainstalujeme PySide:

sudo apt-get install pyside pyside-tools

Naše první aplikace Python + QT

Jdeme do našeho oblíbeného textového editoru, doporučuji vám nainstalovat sublime-text2, ale můžete použít ten, který vám vyhovuje, a my napíšeme následující kód a uložíme jej s názvem, který chceme vždy končit příponou ".py" , Uložím jako app1.py:

3

Viz kód

Spouštíme to z konzoly takto:

python app1.py

Toto okno by se mělo objevit

2

Cože? Jenom to, protože pokud jste předtím měli pouze konzoli, na co si stěžujete? Co jsi čekal, Erp? no tak, člověče, něco začíná.

Nyní vysvětlíme kód:

from PySide.QtGui import *

from sys import exit, argv

Zde importujeme potřebné moduly pro provádění PySide.

app = QApplication(argv)

Vytvoříme instanci Qapplication s aplikací name.

window = Qwidget()

Vytvoříme instanci QWidget ().

window.setWindowTitle("Primera App PySide")

Provedeme metodu setWindowTitle, která obdrží řetězec jako parametr, který "nastaví" název našeho Qwidgetu.

window.show()

Ukážeme své okno

exit(app.exec_())

Nakonec provedeme nekonečný cyklus provádění naší QApplication ().

díky

Děkuji za ty, kteří mě zde sledovali a byli užiteční. V dalším kurzu vysvětlím, jak navrhovat naše okna pomocí QT Designer a importovat je do našich projektů.

Navíc přidávám odkaz na fórum desde linux kde mám malé téma s malou knihovnou pythonových tutoriálů a průvodců, které obsahují různé termíny včetně:

Základní výukové programy pro Python

wxPython

PyQt a PySide

Django

web2py

Vědecké programování v pythonu.

A mnoho dalších.

ODKAZ NA FÓRUM

Doufám, že vám budou sloužit, říkám sbohem, jako vždy potěšení patřit do této úžasné komunity.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   @ důvěra17 řekl

    Díky za příspěvek!

  2.   annubis řekl

    2 věci:

    1. Qt nebyl původně vyvinut společností Nokia, ale Trolltech, který byl později koupen společností Nokia. Ten poté prodal Qt společnosti Digia.
    2. Obrázek v prvním příkladu aplikace neodpovídá kódu.

    Díky za tutoriál, budu ho sledovat 🙂

    1.    f3niX řekl

      Máte úplnou pravdu, minul jsem to. A druhá věc, kterou máte také pravdu, je, že jsem to změnil, aby to bylo jednodušší a nepoužíval třídu, a chyběla mi modifikace, chyby pro začátečníky. Opravy pro schválení některým editorem jsem již prošel.

    2.    f3niX řekl

      Nemohu upravovat, nechávám to na editoru.

      Zdravím.

      1.    neysonv řekl

        Pošlete e-mail editorovi s opraveným návodem. můžete jej poslat na e-mail @nano, který je jedním z redaktorů
        mailto: nano.world.contact@gmail.com
        prosím nenechávejte tutoriál takhle
        jde o

  3.   Germán řekl

    Jedna věc mě zaráží: proč ve svém kódu používáte „from import *“?

    Zdravím!

    1.    f3niX řekl

      Je to správný způsob importu, při takovém importu mu řeknete, jakou konkrétní třídu modulu chcete importovat, a nevyvoláte celý modul.

      Zdravím.

      1.    Germán řekl

        Považuji to za matoucí. Dále se v PEP8 nedoporučuje:

        „Je třeba se vyhnout importu zástupných znaků (z importu modulu *), protože není jasné, která jména jsou v oboru jmen přítomna, což matou čtenáře i mnoho automatizovaných nástrojů ...“

        1.    f3niX řekl

          Řídil jsem se většinou profesionálními kódy, jako je Ninja-Ide, kód si můžete prohlédnout zde: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyDělá se to také v PyQt, ale v žádné formě vás nic nenutí, abyste používali jeden nebo druhý formulář.

          Zde můžete vidět diskusi o StackOverflow o tomto:

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

          Tam zmiňují klady a zápory každého ze stylů.

          1.    f3niX řekl

            ok, promiň, nerozuměl jsem ti, vím to, udělal jsem to jen proto, že nebudu vysvětlovat každý prvek QApplication, QWidget, pak zobecnit, ale máš naprostou pravdu.

            Omluvte nedorozumění.

          2.    Germán řekl

            Ne, nepochopili jste nebo jste nevěnovali pozornost ... Myslím tím použití «from module import *», to znamená, myslím «hvězdičku» ... v tom příspěvku StackOverflow mluví o něčem jiném, ale stále to zdůrazňují:

            "Každá metoda je přijatelná, ale nepoužívejte ji z importu modulu *."

            Je to nyní pochopeno?

          3.    felipe řekl

            Němčina má pravdu. K čemu slouží import z modulu, pokud naimportujete veškerý obsah s asterikou pro daný modul importu. Slds stejně pěkný příspěvek.

          4.    Germán řekl

            Aha, teď to chápu ... každopádně mi to netrvá příliš dlouho, jsem také začátečník v Pythonu. Pokud se zastavíte u mého blogu, uvidíte, že jsem vytvořil příspěvek podobný vašemu, ale s Gtk + 3 pomocí PyGObject.

            Zdravím a děkuji!

        2.    f3niX řekl

          Tady nechávám Pep8, ve španělštině doporučující použití im
          K importu kódu z balíčku se nedoporučuje používat relativní importy. Pro všechny importy vždy používejte absolutní cestu k balíčku. Dokonce i nyní, když je PEP 328 [7] plně implementován v Pythonu 2.5, je používání relativních importů vážně odrazováno; absolutní importy jsou přenosnější a obvykle čitelnější.

          Když importujete třídu z modulu, je obvykle správné to udělat
          z myclass importovat MyClass
          z foo.bar.yourclass importuje vaši třídu

          pozdravy

          1.    lovec řekl

            Přečti si tohle: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli (vývojář jádra) doporučuje něco takového:


            from PyQt4 import QtCore, QtGui

  4.   MSX řekl

    Chtěl jsem víc, až bude 2. díl!?
    Zdravím 🙂

  5.   eliotime3000 řekl

    Velmi dobré výukové programy a programování by mohlo být pohodlnější.

  6.   lovec řekl

    Zde je příklad rozhraní od nuly (bez použití QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX řekl

      Aplikace dhunter je vynikající, tady ani nevíme, kolik nám účtují za elektřinu, haha ​​pozdravy.

      1.    lovec řekl

        Děkuji, je to jedna z těch aplikací, které člověk dělá pro osobní použití a slouží ostatním. Tady na Kubě je účtenka rozepsána se sazbou, je snadné kopírovat algoritmus.

  7.   Jose Eloy řekl

    Tento kurz si velmi dobře uvědomím. Dlouho jsem se zajímal o multiplatformní aplikace a myslím, že kombinace Python + QT / Pyside je skvělá volba. Zdravím a blahopřeji k iniciativě

  8.   Bryan Rodriguez řekl

    Sledoval jsem všechny kroky přesně tak, jak říkáte, ale když spustím aplikaci app1.py v terminálu, řekne mi to Traceback (poslední hovor jako poslední):
    Soubor "app1.py", řádek 1, v
    z importu PySide.QtGui *
    ImportError: Žádný modul s názvem PySide.QtGui. Co to je?

    1.    felipe řekl

      je to proto, že používáte verzi pythonu jako výchozího tlumočníka, ale pro tuto verzi nemáte nainstalován pyside.

      Zkuste přidat na začátek souboru:
      #! usr / bin / python3
      nebo jinak
      #! usr / bin / python2

      Doporučuji použít Eclipse s pydev a dobře nakonfigurovat tlumočníka.
      SLDs

      1.    felipe řekl

        #! / usr / bin / python3
        nebo jinak
        #! / usr / bin / python2

        1.    f3niX řekl

          PySide ještě není kompatibilní s Python3, buďte s tím opatrní a zadruhé zkontrolujte importy prostřednictvím interaktivní konzoly pythonu, takže víte, že jej máte nainstalovaný nebo ne, nainstaluje také pip.

          1.    Bryan Rodriguez řekl

            Jak to ověřím?

          2.    f3niX řekl

            V konzole použijte "Python", každopádně vám doporučuji vstoupit do knihovny, kterou jsem nechal dole v příspěvku a stáhnout si "python pro každého", potřebujete více základny.

            Zdravím a přeji štěstí.

          3.    Bryan Rodriguez řekl

            Velice vám děkuji, velmi mi to pomohlo.

          4.    Mauricio Tobares řekl

            podívejte se příteli F3niX Našel jsem to, zdá se, že pro python 3.3.2 na Windows (což je to, co mám až do příštího týdne) mají binární soubory pro 32 bitů a 64 bitů, zkusil jsem váš příklad a funguje to s pythonem 3.3.2 a Používám PyScripter, který instaluje různá prostředí, pokud otevřete python 3, spustí skripty jako python 3 a pokud otevřete 2.7, provede je jako 2.7 a tak dále (logicky musíte mít nainstalovanou tuto verzi pythonu ... je to pochopitelné)

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

            Nechám vás tam, drby, možná to poslouží někomu jinému 😀

      2.    Bryan Rodriguez řekl

        Mám stejnou chybu.

        1.    Germán řekl

          Máte nainstalován PySide?

          1.    Bryan Rodriguez řekl

            Mám to nainstalované.

        2.    felipe řekl

          A zkuste to nainstalovat pomocí PyQT4 a poté změňte řádky PySide pro PyQT4 nebo PyQt4 a dejte je spustit. Jojo. Použijte zatmění. Štěstí.

          1.    Bryan Rodriguez řekl

            Jak to udělám?.

  9.   karlinux řekl

    Děkuji mnohokrát !!! Čekání na druhou kapitolu

    1.    f3niX řekl

      K tomuto pátku jej mohu zveřejnit (Univerzita mě trochu zaplnila) pozdravy.

  10.   Mauricio Tobares řekl

    Příteli F3nIX, čekám na tvůj tutoriál č. 2, 3, 4… N hehehe

    Už mám nainstalován svůj velmi elegantní linux s čekáním na PySide a na všechno!

    Uvidíme, kdy bude vyzván, aby ukázal nového lektora 😀

    1.    f3niX řekl

      Promiňte, příteli, mám to v konceptech, ale práce a studie mi nedaly čas, slibuji, že tento týden něco vytáhnu.

      Velký pozdrav

  11.   Dante řekl

    Dobrý den, už dlouho se zajímám o učení Pythonu, ale pochybuji. To, co chci, je vytvořit aplikaci, která by trochu vylepšila informační proces rodinného podniku, kde pracuji, chtěla bych udělat něco pro Windows, nejprve s Windows, fungovalo by to všechno na jednom počítači a pak by to mohlo být připojeno přes internet do databáze, ke které by se připojilo několik počítačů. Co se týče GUI aplikace, existuje spousta rozmanitosti, což mi dělá závratě. Co doporučujete, abyste tomu dodali moderní a atraktivní vzhled? Také bych vytvořil nějaké statistické grafy a tiskové zprávy, co k tomu mohu použít? Na zdraví

  12.   Jorge řekl

    Dobrý den, velmi dobrý váš příspěvek, mám dotaz, mohu bez problémů prodat svou aplikaci vyrobenou pomocí pyside?

    1.    f3niX řekl

      Licence jsou vždy šílené, ale licence na bezplatný software vám také umožňují prodávat software, ale stane se, že vás GPL donutí distribuovat kód, na rozdíl od LGPL, které vás k tomu nenutí.

      V každém případě nejsem odborník na licencování.

      Zdravím.