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:
Spustíme to z konzoly takto:
python app1.py
Toto okno by sa malo zobraziť
Č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.
Dúfam, že vám budú slúžiť, lúčim sa, ako vždy je potešením patriť do tejto úžasnej komunity.
Ďakujem za príspevok!
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ť 🙂
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.
Nemôžem upravovať, nechávam to na nejakého editora.
Zdravím.
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
Zaráža ma jedna vec: prečo vo svojom kóde používate výraz „from import *“?
Zdravím!
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.
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 ...“
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.
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.
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é?
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.
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!
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
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
Chcel som viac, lebo keď bude 2. diel!?
Zdravím 🙂
Veľmi dobré návody a programovanie by mohlo byť pohodlnejšie.
Tu je príklad úplne nového rozhrania (bez použitia QtDesigner).
https://github.com/xr09/metrocontador
Aplikácia dhunter je vynikajúca, tu ani nevieme, koľko nám účtujú za elektrinu, haha pozdravy.
Ď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.
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
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 ?.
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
#! / usr / bin / python3
alebo iný
#! / usr / bin / python2
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.
Ako to overím?
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.
Ďakujem pekne, veľmi mi pomohlo.
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 😀
Mám rovnakú chybu.
Máte nainštalovaný PySide?
Mám to nainštalované.
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.
Ako to urobím?
Ďakujem mnohokrát !!! Čaká sa na druhú kapitolu
K tomuto piatku by som ho mohol zverejniť (Univerzita ma trochu zaplnila) pozdravmi.
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 😀
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
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
Dobrý deň, veľmi dobre, váš príspevok, mám otázku, môžem bez problémov predať svoju aplikáciu vyrobenú pomocou pyside?
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.