Ez az oktatóanyag a QT keretrendszer használatának a Python programozási nyelvként történő használatának oktatására összpontosít, ehhez használhatjuk a PySide-et és a PyQt-t is, de ebben az oktatóanyagban a PySide-et fogjuk használni, mert az oktatóanyag szerzőjének jobban tetszik az LGPL PySide licenc. mint a GPL vagy a PyQt Commercial.
Először ... Mi az a Python?
A Wikipedia szerint:
"A Python egy nagyon magas szintű értelmezett programozási nyelv, amelynek filozófiája a nagyon tiszta szintaxist hangsúlyozza, és elősegíti az olvasható kód használatát."
A Python egy multipadradigm programozási nyelv, ezért támogatja a python programozás különböző paradigmáit, például támogatja: Object Oriented Programming (OOP), Imperative Programming (Strukturált) és kisebb mértékben Funkcionális programozást.
Csak az, hogy?
Nem, ez is egy dinamikus gépelési nyelv, ami azt jelenti, hogy a python lehetővé teszi számunkra, hogy a program futtatása során különböző típusú értékeket rendeljünk ugyanahhoz a változóhoz, egyesek előnyként, mások hátrányként tekintenek rá, nézze meg Ön is.
A fent említetteken kívül a Python lehetővé teszi számunkra (mint sokan mások) a programozást mind a webes környezetben, mind a webes asztalon, ez szintén platformokon átívelő, jelenleg támogatja a Gnu / Linux, a Windows, a Mac osx, az Android alkalmazást ( módosítás).
Mi az a QT?
A QT egy multiplatform keretrendszer, amelyet eredetileg a Nokia fejlesztett ki, majd később eladható a Digia számára, amelyet alkalmazásfejlesztésre használnak, C ++ nyelven írják, de más nyelveken is használhatók a Bindings révén (esetünkben PySide vagy PyQt )
Különbségek a PySide és a PyQt között
főleg
- Licencia, a PySide az LGPL feltételei szerint, a PyQT pedig a GPL feltételei szerint vagy kereskedelmi licenccel rendelkezik, ezért zárt alkalmazás létrehozása esetén fizetnünk kellene.
- A PySide-et a Nokia, a PyQt-t a RiverBank készíti.
- A PySide megkímél minket az STR használatával járó problémáktól, amikor minden egyes QT objektum QStringjét használjuk.
Részletezhetjük a teljes változásokat Itt.
előkészítés:
Telepítjük a Qt-t:
Ha disztribúciónk van a Kde-vel, akkor már meg kell szereznünk, amire szükségünk van, ha nem:
sudo apt-get install qt4-dev-tools
Telepítjük a PySide-ot:
sudo apt-get install pyside pyside-tools
Első Python + QT alkalmazásunk
Látogatunk a kedvenc szövegszerkesztőnkhöz, javasoljuk, hogy telepítse a sublime-text2-t, de használhatja a kívántat, és beírjuk a következő kódot, és elmentjük azzal a névvel, amelyet szeretnénk, hogy mindig a ".py" kiterjesztéssel záruljon, Mentem az app1.py néven:
A konzolról így futtatjuk:
python app1.py
Ennek az ablaknak meg kell jelennie
Mi? Csak ez, mert ha korábban csak konzolod volt, mire panaszkodsz? Mire számítottál, egy Erp-re? gyere az emberre, mert valami elkezdődik.
Most magyarázzuk el a kódot:
from PySide.QtGui import *
from sys import exit, argv
Itt importáljuk a PySide futtatásához szükséges modulokat.
app = QApplication(argv)
A névalkalmazással hozzuk létre a Qapplication példányt.
window = Qwidget()
Létrehozzuk a QWidget () példányát.
window.setWindowTitle("Primera App PySide")
Végrehajtjuk a setWindowTitle metódust, amely Stringet kap paraméterként a Qwidgetünk címének "beállításához".
window.show()
Megmutatjuk az ablakunkat
exit(app.exec_())
végül végrehajtjuk a QApplication () végtelen végrehajtási ciklusát.
Köszönöm
Köszönöm azoknak, akik követtek itt és hasznosak voltak. A következő bemutatóhoz elmagyarázom, hogyan tervezhetjük meg ablakainkat a QT Designer segítségével, és hogyan importálhatom őket a projektjeinkbe.
Ezenkívül hozzáadom a fórum linkjét desde linux ahol van egy kis témám python oktatóanyagok és útmutatók kis könyvtárával, amelyek különböző kifejezéseket tartalmaznak, többek között:
Alapvető Python oktatóanyagok
wxPython
PyQt és PySide
Django
web2py
Tudományos programozás a pythonban.
És még sok más.
Remélem, hogy szolgálnak, búcsúzom, mint mindig öröm, hogy ebbe a csodálatos közösségbe tartozhatok.
Köszönöm a bejegyzést!
2 dolog:
1. A Qt-t eredetileg nem a Nokia, hanem a Trolltech fejlesztette ki, amelyet később a Nokia vásárolt meg. Utóbbi aztán eladta a Qt-t a Digiának.
2. Az első alkalmazási példa képe nem egyezik a kóddal.
Köszönöm a bemutatót, követni fogom 🙂
Teljesen igazad van, hiányzott. És a második dolog, amiben igazad van, az az, hogy megváltoztattam, hogy könnyebb legyen és ne használjam az osztályt, és hiányoltam a módosítást, a kezdő hibákat. Már átadom a javításokat, hogy néhány szerkesztő jóváhagyja azokat.
Nem tudok módosítani, meghagyom valamilyen szerkesztőnek.
Üdvözlet.
Küldjön egy szerkesztőnek e-mailt a javított oktatóanyaggal. elküldheti @ nano e-mailjére, aki az egyik szerkesztő
mailto: nano.world.contact@gmail.com
kérlek, ne hagyd így az oktatóanyagot
tekintetében
Egy dolog döbben rá: miért használja az "import *" -t a kódjában?
Üdvözlet!
Ez az importálás helyes módja. Ilyen importáláskor megmondja, hogy a modul melyik osztályát szeretné importálni, és nem hívja meg a teljes modult.
Üdvözlet.
Ezt zavarónak tartom. Ezenkívül a PEP8 nem ajánlott:
"Kerülni kell a helyettesítő karakterek importálását (a modulimportból *), mivel nem egyértelmű, hogy mely nevek vannak a névtérben, összezavarva az olvasókat és számos automatizált eszközt ..."
Leginkább szakmai kódok vezéreltek, például a Ninja-Ide, a kódot itt láthatja: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyPyQt-ben is megtörténik, de semmilyen módon semmi sem kényszeríti az egyik vagy a másik forma használatára.
Itt láthat egy vitát a StackOverflow-ról erről:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Ott megemlítik az egyes stílusok előnyeit és hátrányait.
ok sajnálom, hogy nem értelek, tudom, csak azért tettem, mert nem akartam magyarázatot adni az egyes elemekre: QApplication, QWidget, majd általánosíts, de teljesen igazad van.
Elnézést a félreértés miatt.
Nem, nem értetted, vagy nem figyeltél ... Mármint a «from module import *» használatát értem, vagyis a «csillagot» értem ... abban a StackOverflow bejegyzésben, amiről másról beszélnek, de mégis hangsúlyozzák:
"Bármelyik módszer elfogadható, de ne használja a modulimportból *."
Most megértették?
Németnek igaza van. Mi haszna a modulimportból, ha az összes tartalmat a csillaggal importálja az adott importálási modulhoz. Slds ugyanolyan szép poszt.
Hát, most már értem ... különben is, ne tartson túl sokáig, én is kezdő vagyok a Pythonban. Ha meglátogatja a blogomat, akkor látni fogja, hogy a hozzád hasonló, de a Gtk + 3-mal készített bejegyzést készítettem a PyGObject segítségével.
Üdvözlet és köszönet!
Itt hagyom a Pep8-at, spanyolul az im használatát ajánlva
Nagyon nem ajánlatos a relatív importálást használni a kód importálásához egy csomagból. Az importáláshoz mindig a csomag abszolút elérési útját használja. Még most is, amikor a PEP 328 [7] a Python 2.5-ben teljes mértékben megvalósításra került, a relatív import használata komolyan nem javasolt; az abszolút import hordozhatóbb és általában olvashatóbb.
Ha osztályt importál egy modulból, általában helyes ezt megtenni
from myclass importálja a MyClass-ot
a foo.bar.yourclass címről importálja a YourClass-ot
Üdvözlet
Olvassa el ezt: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (core py fejlesztő) ilyesmit ajánl:
from PyQt4 import QtCore, QtGui
Többet akartam, mire a 2. rész!?
Üdvözlet 🙂
Nagyon jó oktatóanyagok, ráadásul kényelmesebb lehet programozni.
Íme egy példa az interfészről a semmiből (a QtDesigner használata nélkül).
https://github.com/xr09/metrocontador
A dhunter alkalmazás kiváló, itt azt sem tudjuk, mennyit számítanak fel nekünk az áramért, haha üdvözlet.
Köszönöm, ez egyike azoknak az alkalmazásoknak, amelyeket személyes használatra készít és másokat szolgál ki. Itt Kubában a nyugta lebontva van az árfolyammal, könnyen másolható az algoritmus.
Nagyon tisztában leszek ezzel a tanfolyammal. Régóta érdekeltek a cross-platform alkalmazások, és úgy gondolom, hogy a Python + QT / Pyside kombináció remek lehetőség. Üdvözlet és gratuláció a kezdeményezéshez
Pontosan követtem az összes lépést, ahogy mondtad, de amikor az app1.py alkalmazást futtatom a terminálon, a Traceback (legutóbbi hívás utoljára) üzenete:
Az "app1.py" fájl 1. sora a
a PySide.QtGui importból *
ImportError: Nincs PySide.QtGui nevű modul. Mi ez?
ez azért van, mert a python verzióját használja alapértelmezett tolmácsként, de nincs telepítve a pyside az adott verzióhoz.
Próbálja meg hozzáadni a fájl elejéhez:
#! usr / bin / python3
különben
#! usr / bin / python2
Azt javaslom, hogy használja az Eclipse programot a pydev-lel, és jól konfigurálja a tolmácsot.
slds
#! / usr / bin / python3
különben
#! / usr / bin / python2
A PySide még nem kompatibilis a Python3-zal, legyen ezzel körültekintő, másodszor pedig az interaktív python-konzolon keresztül ellenőrzi az importálást, így tudja, hogy telepítette-e vagy sem, a pip-et is telepíti.
Hogyan ellenőrizhetem?
Konzolon a "Python" használatával mindenképp azt javaslom, hogy írja be azt a könyvtárat, amelyet alább hagytam a bejegyzésben, és töltse le a "python mindenkinek" tételt, több alapra van szüksége.
Üdvözlet és szerencse.
Nagyon köszönöm, nagyon hasznos volt számomra.
nézd meg F3niX barátom. Megtaláltam ezt, úgy tűnik, hogy a python 3.3.2-hez a Windows-on (ami nekem van a következő hétig) 32 és 64 bites bináris fájljaik vannak, kipróbáltam a példádat, és a Python 3.3.2-vel működik, és A PyScriptert használom, amely különböző környezeteket telepít, ha megnyitja a python 3-at, akkor a parancsfájlokat python 3-ként futtatja, és ha megnyitja a 2.7-et, akkor ezeket 2.7-ként és így tovább hajtja végre (logikusan a pythonnak ezt a verzióját kell telepíteni ... megértett)
http://qt-project.org/wiki/PySide_Binaries_Windows
Ott hagylak, pletyka, talán másnak fog szolgálni 😀
Ugyanazt a hibát kapom.
Telepítve van a PySide?
Telepítettem.
Próbálja ki a PyQT4-et, telepítse, majd változtassa meg a PySide sorokat PyQT4 vagy PyQt4-re, és futtassa. jojo. Használd a napfogyatkozást. Szerencse.
Hogyan tudom ezt megtenni?
Nagyon szépen köszönjük !!! Várakozás a második fejezetre
Erre a péntekre kiadhatom (az egyetemnek van egy kis teljes szövegem) üdvözletemet.
F3nIX barát várok a 2., 3., 4. sz. Oktatóra ... N hehe
Már telepítettem a nagyon elegáns linuxomat PySide várakozással és mindennel!
Lássuk, mikor ösztönzik új oktató bemutatására 😀
Bocsásson meg barátom, tervezeteim vannak, de a munka és a tanulmányok nem adtak időt, ígérem, hogy a héten kihozok valamit.
Egy nagy üdvözlet
Helló, régóta érdekel a Python megtanulása, de vannak kételyeim. Azt akarom, hogy készítsek egy alkalmazást, hogy egy kicsit javítsam a családi vállalkozás információs folyamatát, ahol dolgozom, szeretnék tenni valamit az ablakokért, eleinte ablakokkal, mindez egyetlen számítógépen működne, és aztán képes lesz interneten keresztül csatlakozni kell ahhoz az adatbázishoz, amelyhez pár számítógép csatlakozna. Nagyon sokféleség van az alkalmazás GUI-jában, és ettől megszédülök. Mit ajánl, hogy modern és vonzó megjelenést kapjon? Készítenék néhány statisztikai grafikont és jelentéseket is nyomtatnék, mit használhatok erre? Egészségére
Helló, nagyon jó, a hozzászólásod, van egy kérdésem, problémamentesen eladhatnám a pyside-el készített alkalmazásomat?
Nos, a licencek mindig őrültek, de az ingyenes szoftverlicencek lehetővé teszik szoftverek eladását is, az történik, hogy a GPL kényszeríti a kód terjesztésére, ellentétben az LGPL-vel, ami nem kényszeríti erre.
Mindenesetre nem vagyok az engedélyezés szakértője.
Üdvözlet.