Deze tutorial is gericht op het aanleren van het gebruik van het QT-framework met Python als programmeertaal, hiervoor kunnen we zowel PySide als PyQt gebruiken, maar in deze tutorial zullen we PySide gebruiken omdat de auteur van deze tutorial de LGPL PySide-licentie beter vindt. dan de GPL of PyQt Commercial.
Ten eerste ... Wat is Python?
Volgens Wikipedia:
"Python is een zeer goed geïnterpreteerde programmeertaal waarvan de filosofie de nadruk legt op een zeer schone syntaxis en bevorderlijk is voor leesbare code."
Python is een multipadradigm-programmeertaal, dus het ondersteunt verschillende Python-programmeerparadigma's, het ondersteunt bijvoorbeeld: Object Oriented Programming (OOP), Imperative Programming (Structured) en in mindere mate Functioneel programmeren.
Alleen dat?
Nee, het is ook een dynamische typetaal, wat betekent dat we met Python verschillende soorten waarden aan dezelfde variabele kunnen toewijzen tijdens de uitvoering van het programma, sommigen zien het als een voordeel, anderen als een nadeel, kijk zelf maar.
Naast wat al is genoemd, stelt Python ons (net als vele anderen) in staat om zowel in de webomgeving als in de webdesktop te programmeren, het is ook platformonafhankelijk, momenteel ondersteunt het Gnu / Linux, Windows, Mac osx, Android (als u ze voor uw wijziging).
Wat is QT?
QT is een multiplatform framework, oorspronkelijk ontwikkeld door Nokia, om later te worden verkocht aan Digia, dat wordt gebruikt voor applicatieontwikkeling.Het is geschreven in C ++, maar kan in andere talen worden gebruikt via bindingen (in ons geval PySide of PyQt)
Verschillen tussen PySide en PyQt
hoofdzakelijk
- Licentie, PySide is gelicentieerd onder de voorwaarden van de LGPL en PyQT valt onder de voorwaarden van de GPL of onder een commerciële licentie, dus we zouden moeten betalen in geval van het creëren van een gesloten applicatie.
- PySide is gemaakt door Nokia en PyQt door RiverBank.
- PySide bespaart ons de moeite om STR te gebruiken elke keer dat we de QString van elk van de QT-objecten gebruiken.
We kunnen de volledige wijzigingen gedetailleerd beschrijven Hier.
Bereiding:
We installeren Qt:
Als we een distro met Kde hebben, zouden we al moeten hebben wat we nodig hebben, zo niet:
sudo apt-get install qt4-dev-tools
We installeren PySide:
sudo apt-get install pyside pyside-tools
Onze eerste Python + QT-applicatie
We gaan naar onze favoriete teksteditor, ik raad je aan om sublime-text2 te installeren, maar je kunt degene gebruiken die je verkiest, en we typen de volgende code en slaan deze op met de naam die we willen, altijd eindigend met de extensie ".py". Ik zal opslaan als app1.py:
We draaien het als volgt vanaf de console:
python app1.py
Dit venster zou moeten verschijnen
Alleen dat, want als je eerder een console had, waar klaag je dan over? Wat had je verwacht, een Erp? kom op man, want er begint iets.
Laten we nu de code uitleggen:
from PySide.QtGui import *
from sys import exit, argv
Hier importeren we de benodigde modules voor PySide-uitvoering.
app = QApplication(argv)
We maken de Qapplication-instantie met de naam app.
window = Qwidget()
We maken de instantie van QWidget ().
window.setWindowTitle("Primera App PySide")
We voeren de methode setWindowTitle uit, die een String ontvangt als parameter om de titel van onze Qwidget "in te stellen".
window.show()
We laten ons raam zien
exit(app.exec_())
Ten slotte voeren we de oneindige cyclus van uitvoering van onze QApplication () uit.
bedankt
Bedankt voor degenen die mij hier zijn gevolgd en nuttig zijn geweest. Voor de volgende tutorial zal ik uitleggen hoe we onze vensters kunnen ontwerpen met QT Designer en ze in onze projecten kunnen importeren.
Daarnaast voeg ik de link naar het forum toe desde linux waar ik een klein thema heb met een kleine bibliotheek met python-tutorials en handleidingen, met verschillende termen, waaronder:
Basislessen voor Python
wxPython
PyQt en PySide
Django
web2py
Wetenschappelijk programmeren in python.
En nog veel meer.
Ik hoop dat ze je van dienst zijn, ik neem afscheid, zoals altijd een plezier om bij deze geweldige gemeenschap te horen.
Bedankt voor de post!
2 dingen:
1. Qt is oorspronkelijk niet ontwikkeld door Nokia, maar door Trolltech, dat later door Nokia is gekocht. Deze laatste verkocht vervolgens Qt aan Digia.
2. De afbeelding in het eerste toepassingsvoorbeeld komt niet overeen met de code.
Bedankt voor de tutorial, ik zal hem volgen 🙂
Je hebt helemaal gelijk, ik heb het gemist. En het tweede dat je ook gelijk hebt, is dat ik het heb veranderd om het gemakkelijker te maken en geen les te gebruiken en ik heb de aanpassing gemist, beginnersfouten. Ik geef de correcties al door zodat een redacteur ze kan goedkeuren.
Ik kan het niet wijzigen, ik laat het over aan een redacteur.
Groeten.
E-mail een redacteur met de gecorrigeerde tutorial. je kunt het sturen naar de e-mail van @nano, een van de redacteuren
mailto: nano.world.contact@gmail.com
verlaat de tutorial alsjeblieft niet
groeten
Eén ding valt me op: waarom gebruik je "from import *" in je code?
Groeten!
Het is de juiste manier om te importeren, wanneer je op deze manier importeert, vertel je het welke specifieke klasse van de module je wilt importeren, en je roept niet de volledige module op.
Groeten.
Ik vind dat nogal verwarrend. Bovendien wordt het niet aanbevolen in PEP8:
"Importeren met jokertekens (van module-import *) moet worden vermeden, omdat ze het onduidelijk maken welke namen in de naamruimte aanwezig zijn, wat zowel lezers als veel geautomatiseerde tools in verwarring brengt ..."
Ik ben voornamelijk geleid door professionele codes, zoals Ninja-Ide, je kunt de code hier bekijken: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyHet wordt ook in PyQt gedaan, maar op geen enkele manier is er niets dat je dwingt om het ene of het andere formulier te gebruiken.
Hier kun je een discussie over StackOverflow zien, hierover:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Daar noemen ze de voor- en nadelen van elk van de stijlen.
oke sorry ik begreep je niet, dat weet ik, ik deed het alleen omdat ik niet van plan was een uitleg te geven van elk element QApplication, QWidget, en dan generaliseer maar je hebt helemaal gelijk.
Excuses voor het misverstand.
Nee, je hebt het niet begrepen of je hebt er niet op gelet ... ik bedoel het gebruik van «from module import *», dat wil zeggen, ik bedoel de «asterisk» ... in dat StackOverflow-bericht hebben ze het over iets anders, maar ze benadrukken het nog steeds:
"Beide methoden zijn acceptabel, maar gebruik deze niet vanuit module-import *."
Is het nu begrepen?
Duits heeft gelijk. Wat heb je aan de from module import als je alle inhoud importeert met de asteric, voor die import module. Slds net zo leuk bericht.
Nou ja, nu begrijp ik het ... in ieder geval, doe me niet te lang uit, ik ben ook een beginner in Python. Als je mijn blog doorneemt, zul je zien dat ik een bericht heb gemaakt dat lijkt op het jouwe, maar met Gtk + 3 met PyGObject.
Groeten en bedankt!
Hier laat ik de Pep8 achter, in het Spaans beveel ik het gebruik van im aan
Het is sterk af te raden om relatieve invoer te gebruiken om code uit een pakket te importeren. Gebruik altijd het absolute pad van het pakket voor alle invoer. Zelfs nu PEP 328 [7] volledig is geïmplementeerd in Python 2.5, wordt het gebruik van relatieve import sterk afgeraden; absolute invoer is draagbaarder en meestal beter leesbaar.
Bij het importeren van een klasse uit een module is het meestal correct om dit te doen
van myclass importeer MyClass
van foo.bar.yourclass importeer YourClass
groeten
Lees dit: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (core py-ontwikkelaar) beveelt zoiets als dit aan:
from PyQt4 import QtCore, QtGui
Ik wilde meer, want toen het 2e deel!?
Groeten 🙂
Zeer goede tutorials, en het is misschien comfortabeler om te programmeren.
Hier is een voorbeeld van een geheel nieuwe interface (zonder QtDesigner te gebruiken).
https://github.com/xr09/metrocontador
De dhunter-app is uitstekend, hier weten we niet eens hoeveel ze ons aanrekenen voor elektriciteit, haha groetjes.
Bedankt, het is een van die apps die men maakt voor persoonlijk gebruik en anderen dient. Hier in Cuba wordt de bon uitgesplitst met het tarief, het algoritme is gemakkelijk te kopiëren.
Ik zal me zeer bewust zijn van deze cursus. Ik ben al heel lang geïnteresseerd in platformonafhankelijke applicaties en ik denk dat de combinatie Python + QT / Pyside een geweldige optie is. Groeten en felicitaties voor het initiatief
Ik volgde alle stappen precies zoals je zegt, maar wanneer ik de app1.py-applicatie in de terminal start, vertelt het me Traceback (meest recente oproep laatste):
Bestand "app1.py", regel 1, in
van PySide.QtGui import *
ImportError: geen module met de naam PySide.QtGui. Voor wat is dit ?.
dat komt omdat je een versie van python gebruikt als de standaardinterpreter, maar je hebt de pyside niet geïnstalleerd voor die versie.
Probeer aan het begin van het bestand toe te voegen:
#! usr / bin / python3
of anders
#! usr / bin / python2
Ik raad je aan om Eclipse met pydev te gebruiken en de tolk goed te configureren.
SLD's
#! / usr / bin / python3
of anders
#! / usr / bin / python2
PySide is nog niet compatibel met Python3, wees daar voorzichtig mee, en ten tweede controleert het de invoer via de interactieve python-console, dus je weet dat je het hebt geïnstalleerd of niet, het installeert ook pip.
Hoe verifieer ik het?
Gebruik in een console "Python", hoe dan ook, ik raad je aan om de bibliotheek in te voeren die ik hieronder in de post heb achtergelaten en "python voor iedereen" te downloaden, je hebt meer basis nodig.
Groeten en geluk.
Heel erg bedankt, het was erg nuttig voor mij.
kijk vriend F3niX Ik heb dit gevonden, het lijkt erop dat voor python 3.3.2 op windows (wat ik heb tot volgende week) ze binaries hebben voor 32 bits en 64 bits, ik heb je voorbeeld geprobeerd en het werkt met python 3.3.2 en ik gebruik De PyScripter die verschillende omgevingen installeert, als je de python 3 opent, voert hij de scripts uit als python 3 en als je de 2.7 opent, voert hij ze uit als 2.7 enzovoort (logischerwijs moet je die versie van python hebben geïnstalleerd ... het is duidelijk)
http://qt-project.org/wiki/PySide_Binaries_Windows
Ik laat je daar achter, roddelen, misschien zal het iemand anders dienen 😀
Ik krijg dezelfde foutmelding.
Heb je PySide geïnstalleerd?
Ik heb het geïnstalleerd.
En probeer het met PyQT4 te installeren en verander vervolgens de PySide-regels voor PyQT4 of PyQt4, en geef het run. jojo. Gebruik de eclips. Geluk.
Hoe doe ik dat?.
Veel dank !!! Wachten op het tweede hoofdstuk
Voor aanstaande vrijdag mag ik het publiceren (de universiteit heeft me een beetje vol) groeten.
Vriend F3nIX Ik wacht op je les N ° 2, 3, 4… N hehehe
Ik heb mijn zeer elegante linux al geïnstalleerd met PySide te wachten en zo!
Eens kijken wanneer hij wordt aangemoedigd om een nieuwe tutor te laten zien 😀
Excuseer me vriend, ik heb het in de klad maar werk en studie hebben me geen tijd gegeven, ik beloof dat ik deze week iets uit de kast zal halen.
Een grote groet
Hallo, ik ben al heel lang geïnteresseerd in het leren van Python, maar ik heb enkele twijfels. Wat ik wil is een applicatie maken om het informatieproces van het familiebedrijf waar ik werk een beetje te verbeteren, ik zou graag iets willen doen voor windows, met windows in eerste instantie, het zou allemaal op een enkele pc werken en dan dat het via internet kan worden aangesloten naar de database waarmee een paar computers verbinding zouden maken. Er is veel diversiteit in termen van GUIing van de applicatie en daar word ik duizelig van. Wat raadt u aan om het een moderne en aantrekkelijke uitstraling te geven? Ik zou ook wat statistische grafieken maken en rapporten afdrukken, wat kan ik daarvoor gebruiken? Proost
Hallo, heel goed je bericht, ik heb een vraag. Kan ik mijn app gemaakt met pyside probleemloos verkopen?
Welnu, licenties zijn altijd gek, maar met vrije softwarelicenties kun je ook software verkopen. Wat er gebeurt, is dat de GPL je dwingt de code te verspreiden, in tegenstelling tot de LGPL, die je niet dwingt om dit te doen.
Ik ben in ieder geval geen expert op het gebied van licenties.
Groeten.