Pirmie soļi ar Python + Qt # 1

Šī apmācība ir vērsta uz QT ietvara lietošanas mācīšanu, izmantojot Python kā programmēšanas valodu, šim nolūkam mēs varam izmantot gan PySide, gan PyQt, taču šajā apmācībā mēs izmantosim PySide, jo šīs apmācības autoram labāk patīk LGPL PySide licence. nekā GPL vai PyQt Commercial.

Pirmkārt ... Kas ir Python?

Saskaņā ar Wikipedia:

"Python ir ļoti augsta līmeņa interpretēta programmēšanas valoda, kuras filozofija uzsver ļoti tīru sintaksi un veicina lasāmu kodu."

Python ir multipadradigmas programmēšanas valoda, tāpēc tā atbalsta dažādas pitona programmēšanas paradigmas, piemēram, atbalsta: Object Oriented Programming (OOP), Imperative Programming (Strukturētu) un mazākā mērā Funkcionālo programmēšanu.

Tikai to, ka?

Nē, tā ir arī dinamiska rakstīšanas valoda, kas nozīmē, ka pitons ļauj programmas izpildes laikā vienam un tam pašam mainīgajam piešķirt dažāda veida vērtības, daži to uzskata par priekšrocību, citi par trūkumu, pārliecinieties paši.

Papildus iepriekšminētajam, Python ļauj mums (tāpat kā daudziem citiem) programmēt gan tīmekļa vidē, gan tīmekļa darbvirsmā, tas ir arī starpplatforms, pašlaik tas atbalsta Gnu / Linux, Windows, Mac osx, Android (ja jums tas jāpiemin modifikācija).

Kas ir QT?

QT ir daudzplatformu ietvars, kuru sākotnēji izstrādāja Nokia, un vēlāk tas tiks pārdots Digia, kas tiek izmantots lietojumprogrammu izstrādei, tas ir rakstīts C ++, bet ar Bindings starpniecību var tikt izmantots citās valodās (mūsu gadījumā PySide vai PyQt )

Atšķirības starp PySide un PyQt

Galvenokārt

  • Licence, PySide ir licencēta saskaņā ar LGPL noteikumiem, un PyQT ir saskaņā ar GPL noteikumiem vai saskaņā ar komerciālu licenci, tāpēc mums būtu jāmaksā, ja izveidojat slēgtu lietojumprogrammu.
  • PySide izveido Nokia, bet PyQt - RiverBank.
  • PySide ietaupa problēmas ar STR izmantošanu katru reizi, kad mēs izmantojam katra QT objekta QString.

Mēs varam detalizēti norādīt visas izmaiņas Here.

Sagatavošana:

Mēs instalējam Qt:

Ja mums ir dispečers ar Kde, mums jau vajadzētu būt vajadzīgajam, ja ne:

sudo apt-get install qt4-dev-tools

Mēs instalējam PySide:

sudo apt-get install pyside pyside-tools

Mūsu pirmā Python + QT lietojumprogramma

Mēs dodamies uz mūsu iecienīto teksta redaktoru, es iesaku jums instalēt sublime-text2, bet jūs varat izmantot vēlamo kodu, un mēs ierakstām šādu kodu un saglabājam to ar nosaukumu, kuru mēs vēlamies vienmēr beigties ar paplašinājumu ".py", es Saglabāšu kā app1.py:

3

Skatīt kodu

Mēs to darbinām no konsoles šādi:

python app1.py

Šim logam vajadzētu parādīties

2

Kas? Tikai tas, jo, ja jums iepriekš bija tikai konsole, par ko jūs sūdzaties? Ko jūs gaidījāt, Erp? nāc uz cilvēku, kaut kas sākas.

Tagad paskaidrosim kodu:

from PySide.QtGui import *

from sys import exit, argv

Šeit mēs importējam PySide izpildei nepieciešamos moduļus.

app = QApplication(argv)

Mēs izveidojam Qapplication gadījumu ar nosaukumu app.

window = Qwidget()

Mēs izveidojam QWidget () instanci.

window.setWindowTitle("Primera App PySide")

Mēs izpildām metodi setWindowTitle, kas saņem virkni kā parametru, lai "iestatītu" mūsu Qwidget virsrakstu.

window.show()

Mēs parādām savu logu

exit(app.exec_())

visbeidzot, mēs izpildām mūsu QApplication () bezgalīgo izpildes ciklu.

Gracias

Paldies par tiem, kas sekoja man šeit un bija noderīgi. Nākamajai apmācībai es paskaidrošu, kā veidot logus ar QT Designer un importēt tos mūsu projektos.

Adicional mente les añado el link al foro de desde linux donde tengo un pequeño tema con una pequeña biblioteca de tutoriales y guías de python, que contiene diferentes termas que incluyen:

Pamata Python apmācības

wxPython

PyQt un PySide

Django

web2py

Zinātniskā programmēšana pitonā.

Un vēl daudz vairāk.

SAITE uz FORUMU

Es ceru, ka viņi jums kalpo, es atvados, kā vienmēr prieks piederēt šai brīnišķīgajai kopienai.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   @ trust17 teica

    Paldies par ierakstu!

  2.   annubis teica

    2 lietas:

    1. Sākotnēji Qt izstrādāja nevis Nokia, bet gan Trolltech, kuru vēlāk iegādājās Nokia. Pēc tam pēdējais pārdeva Qt Digia.
    2. Attēls pirmajā lietojumprogrammas piemērā neatbilst kodam.

    Paldies par apmācību, es to ievērošu 🙂

    1.    f3niX teica

      Jums ir pilnīga taisnība, man tas pietrūka. Otra lieta, kas jums arī ir taisnība, ir tā, ka es to mainīju, lai atvieglotu un neizmantotu klasi, un es nokavēju modifikāciju, iesācēju kļūdas. Es jau nododu labojumus, lai daži redaktori tos apstiprinātu.

    2.    f3niX teica

      Es nevaru modificēt, es to atstāju redaktora ziņā.

      Sveicieni.

      1.    neysonv teica

        Nosūtiet redaktoram pa e-pastu ar laboto apmācību. To varat nosūtīt uz @nano e-pastu, kurš ir viens no redaktoriem
        mailto: nano.world.contact@gmail.com
        lūdzu, neatstājiet apmācību šādi
        vēlējumiem

  3.   Germán teica

    Mani pārsteidz viena lieta: kāpēc jūs savā kodā izmantojat “from import *”?

    Sveicieni!

    1.    f3niX teica

      Tas ir pareizs importēšanas veids, importējot šādi, jūs sakāt, kāda konkrēta moduļa klase ir jāimportē, un jūs nezvanāt uz visu moduli.

      Sveicieni.

      1.    Germán teica

        Man tas liekas mulsinoši. Turklāt PEP8 nav ieteicams:

        "Jāizvairās no aizstājējzīmju importēšanas (no moduļu importēšanas *), jo tas padara neskaidru, kuri nosaukumi atrodas nosaukumvietā, sajaucot gan lasītājus, gan daudzus automatizētus rīkus ..."

        1.    f3niX teica

          Esmu vadījies galvenokārt pēc profesionāliem kodiem, piemēram, Ninja-Ide, kodu varat redzēt šeit: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyTas tiek darīts arī PyQt, taču nekādā veidā nekas neliek izmantot vienu vai otru veidlapu.

          Šeit jūs varat redzēt diskusiju par StackOverflow par šo:

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

          Tur viņi min katra stila plusus un mīnusus.

          1.    f3niX teica

            labi žēl, ka es tevi nesapratu, es to zinu, es to izdarīju tikai tāpēc, ka negrasījos sniegt paskaidrojumu par katru elementu QApplication, QWidget, pēc tam vispārināt, bet tev ir pilnīga taisnība.

            Atvainojiet pārpratumu.

          2.    Germán teica

            Nē, jūs nesapratāt vai nepievērsāt uzmanību ... es domāju lietot «no moduļa importēšanas *», tas ir, es domāju «zvaigznīti» ... tajā StackOverflow ierakstā viņi runā par kaut ko citu, taču viņi to joprojām uzsver:

            "Abas metodes ir pieņemamas, taču neizmantojiet no moduļu importēšanas *."

            Vai tagad to saprot?

          3.    Felipe teica

            Vācietim ir taisnība. Kāda ir no moduļu importēšanas izmantošana, ja importējat visu importētā moduļa saturu ar zvaigznīti. Slds tikpat jauks ieraksts.

          4.    Germán teica

            Ahh nu, tagad es saprotu ... vienalga, neaizņem mani pārāk ilgi, es arī esmu Python iesācējs. Pārlūkojot manu emuāru, jūs redzēsiet, ka es izveidoju jums līdzīgu ziņu, bet ar Gtk + 3, izmantojot PyGObject.

            Sveiciens un paldies!

        2.    f3niX teica

          Šeit es atstāju Pep8, spāņu valodā iesakot lietot im
          Kodu importēšanai no pakotnes ir ļoti ieteicams izmantot relatīvo importu. Visam importam vienmēr izmantojiet paketes absolūto ceļu. Pat tagad, kad PEP 328 [7] ir pilnībā ieviests Python 2.5 versijā, relatīvā importa izmantošana ir nopietni neiespējama; absolūtais imports ir pārnēsājamāks un parasti lasāmāks.

          Importējot klasi no moduļa, parasti tas ir pareizi
          no myclass importējiet MyClass
          no vietnes foo.bar.yourclass importējiet YourClass

          Sveicieni

          1.    dunter teica

            Lasi šo: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli (galvenais py izstrādātājs) iesaka kaut ko līdzīgu šim:


            from PyQt4 import QtCore, QtGui

  4.   MSX teica

    Es gribēju vairāk, jo kad 2. daļa!?
    Sveiciens 🙂

  5.   3000 teica

    Ļoti labas konsultācijas, arī varētu būt ērtāk programmēt.

  6.   dunter teica

    Šeit ir saskarnes piemērs no nulles (neizmantojot QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX teica

      Hantera lietotne ir lieliska, šeit mēs pat nezinām, cik daudz viņi mums prasa par elektrību, haha ​​sveicieni.

      1.    dunter teica

        Paldies, tā ir viena no tām lietotnēm, kas tiek veidota personīgai lietošanai un kalpo citiem. Šeit Kubā kvīts ir detalizēts ar likmi, algoritmu ir viegli nokopēt.

  7.   Hosē Elojs teica

    Es ļoti labi zināšu šo kursu. Mani jau ilgu laiku interesē starpplatformu lietojumprogrammas, un es domāju, ka Python + QT / Pyside kombinācija ir lieliska iespēja. Sveicieni un apsveikumi ar iniciatīvu

  8.   Braiens Rodrigess teica

    Es izpildīju visas darbības tieši tā, kā jūs sakāt, bet, palaižot lietojumprogrammu app1.py terminālā, tā man paziņo Traceback (pēdējais zvans pēdējais):
    Fails "app1.py", 1. rindiņa
    no PySide.QtGui importa *
    ImportError: Nav moduļa ar nosaukumu PySide.QtGui. Kas tas ir?

    1.    Felipe teica

      tas ir tāpēc, ka jūs kā noklusējuma tulku izmantojat pitona versiju, taču šai versijai nav instalēts pyside.

      Mēģiniet pievienot faila sākumā:
      #! usr / bin / python3
      vai arī
      #! usr / bin / python2

      Es iesaku jums izmantot Eclipse ar pydev un labi konfigurēt tulku.
      slds

      1.    Felipe teica

        #! / usr / bin / python3
        vai arī
        #! / usr / bin / python2

        1.    f3niX teica

          PySide vēl nav saderīgs ar Python3, esiet uzmanīgs ar to un, otrkārt, pārbaudiet importēšanu, izmantojot interaktīvo python konsoli, lai jūs zināt, ka esat to instalējis vai nē, tas arī instalē pip.

          1.    Braiens Rodrigess teica

            Kā to pārbaudīt?

          2.    f3niX teica

            Konsolē izmantojiet "Python", vienalga es iesaku jums ierakstīt bibliotēku, kuru atstāju zemāk ierakstā, un lejupielādēt "Python for everyone", jums ir nepieciešama lielāka bāze.

            Sveiciens un veiksme.

          3.    Braiens Rodrigess teica

            Liels paldies, tas man bija ļoti noderīgs.

          4.    Mauricio Tobaress teica

            izskatās draugs F3niX Es to atradu, šķiet, ka Python 3.3.2 uz Windows (kas man ir līdz nākamajai nedēļai) viņiem ir bināri 32 biti un 64 biti, es izmēģināju jūsu piemēru, un tas darbojas ar python 3.3.2 un Es izmantoju PyScripter, kas instalē dažādas vides, ja atverat python 3, skripti tiek palaisti kā Python 3 un, atverot 2.7, tie tos izpilda kā 2.7 un tā tālāk (loģiski, ka šī python versija ir jāinstalē ... tas ir saprotams)

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

            Es tevi atstāšu, tenkas, varbūt tas kalpos kādam citam 😀

      2.    Braiens Rodrigess teica

        Man rodas tā pati kļūda.

        1.    Germán teica

          Vai jums ir instalēta PySide?

          1.    Braiens Rodrigess teica

            Man tas ir instalēts.

        2.    Felipe teica

          Izmēģiniet PyQT4, instalējiet to un pēc tam mainiet PySide līnijas uz PyQT4 vai PyQt4 un ļaujiet tai darboties. džojo. Izmantojiet aptumsumu. Veiksme.

          1.    Braiens Rodrigess teica

            Kā lai es to izdaru?.

  9.   karlinux teica

    Liels paldies !!! Gaida otro nodaļu

    1.    f3niX teica

      Par šo piektdienu es drīkstu publicēt apsveikumus (Universitāte man ir mazliet pilna)

  10.   MauricioTobares teica

    Draugs F3nIX Es gaidu jūsu apmācību Nr. 2, 3, 4 ... N hehehe

    Man jau ir instalēts mans ļoti elegantais Linux ar PySide gaidīšanu un viss!

    Paskatīsimies, kad viņš tiek mudināts parādīt jaunu pasniedzēju 😀

    1.    f3niX teica

      Atvainojiet, draugs, man tas ir melnrakstos, bet darbs un studijas man nav devuši laiku, es apsolu šonedēļ kaut ko iegūt.

      Liels sveiciens

  11.   Dante teica

    Sveiki, mani jau sen interesē apgūt Python, bet man ir šaubas. Es vēlos izveidot lietojumprogrammu, lai nedaudz uzlabotu ģimenes uzņēmuma, kurā es strādāju, informācijas procesu. Es gribētu kaut ko darīt logiem, vispirms ar logiem, tas viss darbotos vienā datorā un pēc tam caur internetu jābūt savienotam ar datu bāzi, kurai pievienotos pāris datori. Lietojumprogrammas GUIing ziņā ir daudz dažādu, un tas man reibst. Ko jūs iesakāt piešķirt tai modernu un pievilcīgu izskatu? Es arī izveidotu dažus statistikas grafikus un izdrukātu pārskatus, ko es tam varu izmantot? Priekā

  12.   Jorge teica

    Sveiki, ļoti labi, jūsu ziņa, man ir jautājums. Vai es varu bez problēmām pārdot savu lietotni, kas izveidota ar pyside?

    1.    f3niX teica

      Nu, licences vienmēr ir trakas, taču bezmaksas programmatūras licences ļauj arī pārdot programmatūru, notiek tas, ka GPL piespiež jūs izplatīt kodu, atšķirībā no LGPL, kas jums to nepiespiež.

      Jebkurā gadījumā es neesmu licencēšanas eksperts.

      Sveicieni.