Denna handledning fokuserar på att lära sig användningen av QT-ramverket med Python som programmeringsspråk, för detta kan vi använda både PySide och PyQt, men i den här guiden kommer vi att använda PySide eftersom författaren till den här guiden gillar LGPL PySide-licensen bättre. än GPL eller PyQt Commercial.
Först ... Vad är Python?
Enligt Wikipedia:
"Python är ett mycket högt tolkat programmeringsspråk vars filosofi betonar mycket ren syntax och gynnar läsbar kod."
Python är ett programmeringsspråk för multipradigm, så det stöder olika pythonprogrammeringsparadigmer, till exempel stöder det: Object Oriented Programming (OOP), Imperative Programming (Structured) och i mindre utsträckning Funktionell programmering.
Bara det?
Nej, det är också ett dynamiskt skrivspråk, vilket innebär att python tillåter oss att tilldela olika typer av värden till samma variabel under genomförandet av programmet, vissa ser det som en fördel, andra som en nackdel, se själv .
Förutom det ovan nämnda tillåter Python oss (som många andra) att programmera både i webbmiljön och på webbdatoren, det är också plattform, för närvarande stöder det Gnu / Linux, Windows, Mac osx, Android (Om du måste nämna dem för din modifiering).
Vad är QT?
QT är ett ramverk med flera plattformar som ursprungligen utvecklats av Nokia för att senare säljas till Digia, som används för applikationsutveckling, det är skrivet i C ++ men kan användas på andra språk genom bindningar (i vårt fall PySide eller PyQt)
Skillnader mellan PySide och PyQt
huvudsakligen
- Licens, PySide licensieras under villkoren i LGPL och PyQT är under villkoren i GPL eller under en kommersiell licens, så vi skulle behöva betala om vi skapade en stängd ansökan.
- PySide skapas av Nokia och PyQt av RiverBank.
- PySide sparar oss besväret med att använda STR varje gång vi använder QString för vart och ett av QT-objekten.
Vi kan beskriva de fullständiga ändringarna Här.
preparatet:
Vi installerar Qt:
Om vi har en distro med Kde borde vi redan ha det vi behöver, om inte:
sudo apt-get installera qt4-dev-tools
Vi installerar PySide:
sudo apt-get install pyside pyside-tools
Vår första Python + QT-applikation
Vi går till vår favorittextredigerare, jag rekommenderar att du installerar sublime-text2, men du kan använda den du föredrar, och vi skriver följande kod och sparar den med det namn som vi vill alltid sluta med tillägget ".py" , Jag sparar som app1.py:
Vi kör det från konsolen så här:
python app1.py
Det här fönstret ska visas
Bara det, för om du bara hade en konsol tidigare, vad klagar du på? Vad förväntade du dig, en Erp? kom igen man, något börjar.
Låt oss nu förklara koden:
from PySide.QtGui import *
from sys import exit, argv
Här importerar vi de nödvändiga modulerna för PySide-körning.
app = QApplication(argv)
Vi skapar Qapplication-instansen med namnet app.
window = Qwidget()
Vi skapar QWidget () -instansen.
window.setWindowTitle("Primera App PySide")
Vi kör metoden setWindowTitle, som tar emot en sträng som en parameter för att "ställa in" titeln på vår Qwidget.
window.show()
Vi visar vårt fönster
exit(app.exec_())
äntligen utför vi den oändliga körcykeln för vår QApplication ().
tack
Tack för dem som har följt mig här och varit till nytta. För nästa handledning kommer jag att förklara hur vi kan designa våra fönster med QT Designer och importera dem till våra projekt.
Dessutom lägger jag till länken till forumet desde linux där jag har ett litet tema med ett litet bibliotek med python-tutorials och guider, som innehåller olika termer inklusive:
Grundläggande Python-självstudier
wxPython
PyQt och PySide
Django
web2py
Vetenskaplig programmering i python.
Och många fler.
Jag hoppas att de tjänar dig, jag säger adjö, som alltid ett nöje att tillhöra denna underbara gemenskap.
Tack för inlägget!
2 saker:
1. Qt utvecklades inte ursprungligen av Nokia utan av Trolltech som senare köptes av Nokia. Den senare sålde sedan Qt till Digia.
2. Bilden i det första applikationsexemplet matchar inte koden.
Tack för handledningen, jag följer den 🙂
Du har helt rätt. Jag saknade det. Och det andra du också har rätt är att jag ändrade det för att göra det lättare och inte använda klassen och jag saknade modifieringen, nybörjarfel. Jag skickar redan korrigeringarna för att någon redaktör ska godkänna dem.
Jag kan inte ändra, jag lämnar det åt någon redaktör.
Hälsningar.
Skicka en redaktör med den korrigerade handledningen via e-post. du kan skicka det till e-postmeddelandet till @nano som är en av redaktörerna
mailto: nano.world.contact@gmail.com
snälla lämna inte självstudien så här
gäller
En sak slår mig: varför använder du "från import *" i din kod?
Hälsningar!
Det är rätt sätt att importera, när du importerar så här berättar du vilken specifik klass av modulen du vill importera och du ringer inte hela modulen.
Hälsningar.
Jag tycker att den här typen av förvirrande. Dessutom rekommenderas det inte i PEP8:
"Import av jokertecken (från modulimport *) bör undvikas, eftersom de gör det oklart vilka namn som finns i namnområdet, vilket förvirrar både läsare och många automatiska verktyg ..."
Jag har främst blivit guidad av professionella koder, som Ninja-Ide, du kan se koden här: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyDet görs också i PyQt, men på något sätt finns det inget som tvingar dig att använda den ena eller den andra formen.
Här kan du se en diskussion om StackOverflow, om detta:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Där nämner de fördelar och nackdelar med varje stil.
ok förlåt att jag inte förstod dig, jag vet det, jag gjorde det bara för att jag inte skulle ge en förklaring av varje QApplication, QWidget-element, så generalisera men du har helt rätt.
Ursäkta missförståndet.
Nej, du förstod inte eller uppmärksammade inte ... Jag menar att använda «från modulimport *», det vill säga jag menar «asterisken» ... i det StackOverflow-inlägget pratar de om något annat, men de betonar det ändå:
"Endera metoden är acceptabel, men använd inte från modulimport *."
Förstås det nu?
Tyska har rätt. Vilken nytta är importen från modul om du importerar allt innehåll med asteric för den importmodulen. Slds lika trevligt inlägg.
Ahh, nu förstår jag ... hur som helst, ta mig inte för lång tid, jag är också nybörjare i Python. Om du stannar vid min blogg kommer du att se att jag gjorde ett inlägg som liknar ditt men med Gtk + 3 med PyGObject.
Hälsningar och tack!
Här lämnar jag Pep8, på spanska rekommenderar jag användning av im
Det är mycket tillrådligt att använda relativ import för att importera kod från ett paket. Använd alltid paketets absoluta väg för all import. Även nu när PEP 328 [7] är fullt implementerat i Python 2.5 avskräcks allvarligt användning av relativ import; absolut import är mer bärbar och vanligtvis mer läsbar.
När du importerar en klass från en modul är det vanligtvis korrekt att göra detta
från myclass importera MyClass
från foo.bar.yourclass importerar YourClass
hälsningar
Läs detta: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (core py-utvecklare) rekommenderar något så här:
from PyQt4 import QtCore, QtGui
Jag ville ha mer, för när den andra delen!?
Hälsningar 🙂
Mycket bra handledning, det kan också vara bekvämare att programmera.
Här är ett exempel på ett gränssnitt från grunden (utan att använda QtDesigner).
https://github.com/xr09/metrocontador
Dhunter-appen är utmärkt, här vet vi inte ens hur mycket de tar betalt för el, haha hälsningar.
Tack, det är en av de appar som man gör för personligt bruk och serverar andra. Här på Kuba är kvittot uppdelat med räntan, det är enkelt att kopiera algoritmen.
Jag kommer att vara mycket medveten om den här kursen. Jag har varit intresserad av plattformsapplikationer under lång tid och jag tycker att Python + QT / Pyside-kombinationen är ett bra alternativ. Hälsningar och gratulationer för initiativet
Jag följde alla steg exakt som du säger, men när jag kör app1.py-applikationen i terminalen berättar det mig Traceback (senaste samtalet senast):
Fil "app1.py", rad 1, in
från PySide.QtGui import *
ImportError: Ingen modul som heter PySide.QtGui. För vad är det här ?.
det beror på att du använder en version av python som standardtolk, men du har inte installerat pyside för den versionen.
Försök lägga till i början av filen:
#! usr / bin / python3
annars
#! usr / bin / python2
Jag rekommenderar att du använder Eclipse med pydev och konfigurerar tolken väl.
SLD
#! / usr / bin / python3
annars
#! / usr / bin / python2
PySide är ännu inte kompatibelt med Python3, var försiktig med det, och för det andra kontrollerar den importen via den interaktiva pythonkonsolen, så du vet att du har den installerad eller inte, den installerar också pip.
Hur verifierar jag det?
I en konsol använder du "Python", ändå rekommenderar jag att du går in i biblioteket som jag lämnade nedan i inlägget och laddar ner "python för alla", du behöver mer bas.
Hälsningar och tur.
Tack så mycket, det var till stor hjälp för mig.
se vän F3niX Jag hittade det här, det verkar som att för python 3.3.2 på windows (vilket är vad jag har fram till nästa vecka) har de binärfiler för 32 bitar och 64 bitar, jag försökte ditt exempel och det fungerar med python 3.3.2 Jag använder PyScripter som installerar olika miljöer, om du öppnar python 3 körs skript som python 3 och om du öppnar 2.7 körs de som 2.7 och så vidare (logiskt sett måste du ha den versionen av python installerad ... det är förstått)
http://qt-project.org/wiki/PySide_Binaries_Windows
Jag lämnar dig där, skvaller, kanske kommer det att tjäna någon annan 😀
Jag får samma fel.
Har du PySide installerat?
Jag har den installerad.
Och försök med PyQT4 installera den och ändra sedan PySide-linjerna för PyQT4 eller PyQt4 och ge den att köra. jojo. Använd förmörkelsen. Tur.
Hur gör jag det?.
Tack så mycket !!! Väntar på det andra kapitlet
För denna fredag kan jag publicera den (universitetet har mig lite full) hälsningar.
Vän F3nIX Jag väntar på din handledning nr 2, 3, 4 ... N hehehe
Jag har redan min mycket eleganta Linux installerad med PySide väntar och allt!
Låt oss se när han uppmuntras att visa en ny handledare 😀
Ursäkta mig vän, jag har det i utkast men arbete och studier har inte gett mig tid, jag lovar att få ut något den här veckan.
En stor hälsning
Hej, jag har varit intresserad av att lära mig Python länge men jag tvivlar. Vad jag vill är att göra en ansökan för att förbättra informationsprocessen för familjeföretaget där jag arbetar, jag skulle vilja göra något för windows, med windows först, det skulle fungera allt på en enda dator och sedan att det kan anslutas via internet till den databas som ett par datorer skulle ansluta till. Det finns mycket mångfald när det gäller GUIing av applikationen och det gör mig yr. Vad rekommenderar du för att ge det ett modernt och attraktivt utseende? Jag skulle också göra statistisk grafik och skriva ut rapporter, vad kan jag använda för det? Skål
Hej, mycket bra, ditt inlägg, jag har en fråga, kan jag sälja min app gjord med pyside utan problem?
Tja, licenser är alltid galna, men gratis mjukvarulicenser tillåter dig också att sälja programvara. Vad som händer är att GPL tvingar dig att distribuera koden, till skillnad från LGPL, vilket inte tvingar dig att göra det.
I vilket fall som helst är jag inte expert på licensiering.
Hälsningar.