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:
Spouštíme to z konzoly takto:
python app1.py
Toto okno by se mělo objevit
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.
Doufám, že vám budou sloužit, říkám sbohem, jako vždy potěšení patřit do této úžasné komunity.
Díky za příspěvek!
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 🙂
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.
Nemohu upravovat, nechávám to na editoru.
Zdravím.
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
Jedna věc mě zaráží: proč ve svém kódu používáte „from import *“?
Zdravím!
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.
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ů ...“
Ří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ů.
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í.
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?
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.
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!
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
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
Chtěl jsem víc, až bude 2. díl!?
Zdravím 🙂
Velmi dobré výukové programy a programování by mohlo být pohodlnější.
Zde je příklad rozhraní od nuly (bez použití QtDesigner).
https://github.com/xr09/metrocontador
Aplikace dhunter je vynikající, tady ani nevíme, kolik nám účtují za elektřinu, haha pozdravy.
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.
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ě
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?
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
#! / usr / bin / python3
nebo jinak
#! / usr / bin / python2
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.
Jak to ověřím?
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í.
Velice vám děkuji, velmi mi to pomohlo.
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 😀
Mám stejnou chybu.
Máte nainstalován PySide?
Mám to nainstalované.
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í.
Jak to udělám?.
Děkuji mnohokrát !!! Čekání na druhou kapitolu
K tomuto pátku jej mohu zveřejnit (Univerzita mě trochu zaplnila) pozdravy.
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 😀
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
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í
Dobrý den, velmi dobrý váš příspěvek, mám dotaz, mohu bez problémů prodat svou aplikaci vyrobenou pomocí pyside?
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.