Hierdie handleiding is gefokus op die gebruik van die QT-raamwerk met behulp van Python as programmeertaal, hiervoor kan ons beide PySide en PyQt gebruik, maar in hierdie handleiding sal ons PySide gebruik omdat die skrywer van hierdie handleiding die LGPL PySide-lisensie beter hou. as die GPL of PyQt Commercial.
Index
Eerstens ... Wat is Python?
Volgens Wikipedia:
"Python is 'n baie hoë geïnterpreteerde programmeertaal waarvan die filosofie baie skoon sintaksis beklemtoon en leesbare kode bevoordeel."
Python is 'n meertalige programmeertaal, dus ondersteun dit verskillende luislangprogrammeringsparadigmas, byvoorbeeld: Object Oriented Programming (OOP), Imperative Programming (Structured) en in mindere mate Funksionele programmering.
Net dit?
Nee, dit is ook 'n dinamiese tiktaal, wat beteken dat luislang ons in staat stel om verskillende soorte waardes aan dieselfde veranderlike toe te ken tydens die uitvoering van die program, sommige sien dit as 'n voordeel, ander as 'n nadeel, sien self .
Benewens die bogenoemde, laat Python ons toe (soos baie ander) om beide in die webomgewing en op die webwerktuig te programmeer, dit is ook platformonafhanklik, tans ondersteun dit Gnu / Linux, Windows, Mac osx, Android (as u moet dit noem vir u verandering).
Wat is QT?
QT is 'n meervoudige raamwerk, oorspronklik ontwikkel deur Nokia, om later aan Digia te verkoop, wat gebruik word vir die ontwikkeling van toepassings. Dit is geskryf in C ++, maar kan in ander tale gebruik word deur Bindings (in ons geval PySide of PyQt)
Verskille tussen PySide en PyQt
hoofsaaklik
- Lisensie, PySide is gelisensieer onder die voorwaardes van die LGPL en PyQT is onder die voorwaardes van die GPL of onder 'n kommersiële lisensie, dus ons sal moet betaal in die geval van 'n geslote aansoek.
- PySide is geskep deur Nokia en PyQt deur RiverBank.
- PySide bespaar ons die moeite om STR te gebruik elke keer as ons die QString van elk van die QT-voorwerpe gebruik.
Ons kan die volledige veranderinge uiteensit Hier.
Voorbereiding:
Ons installeer Qt:
As ons 'n distro met Kde het, moet ons reeds hê wat ons nodig het, so nie:
sudo apt-installeer qt4-dev-tools
Ons installeer PySide:
sudo apt-get install pyside pyside-tools
Ons eerste Python + QT-toepassing
Ons gaan na ons gunsteling teksredigeerder, ek beveel aan dat u sublime-text2 installeer, maar u kan die een gebruik wat u verkies, en ons tik die volgende kode en stoor dit met die naam wat ons wil hê, en eindig altyd met die uitbreiding ".py" , Ek sal stoor as app1.py:
Ons bestuur dit van die konsole af so:
python app1.py
Hierdie venster moet verskyn
Wat? Net dit, want waaroor kla jy as jy net 'n konsole gehad het? Wat het jy verwag, 'n Erp? kom man, iets begin.
Kom ons verduidelik nou die kode:
from PySide.QtGui import *
from sys import exit, argv
Hier voer ons die nodige modules in vir die uitvoering van PySide.
app = QApplication(argv)
Ons skep die Qapplication-instansie met die naam-app.
window = Qwidget()
Ons skep die instansie van QWidget ().
window.setWindowTitle("Primera App PySide")
Ons voer die setWindowTitle-metode uit, wat 'n tekenreeks ontvang as parameter om die titel van ons Qwidget te "instel".
window.show()
Ons wys ons venster
exit(app.exec_())
uiteindelik voer ons die oneindige uitvoeringsiklus van ons QApplication () uit.
Dankie
Dankie vir diegene wat my hier gevolg het en nuttig was. Vir die volgende handleiding sal ek verduidelik hoe u ons vensters met QT Designer kan ontwerp en in ons projekte kan invoer.
Verder voeg ek die skakel vanaf Linux by die forum, waar ek 'n klein onderwerp het met 'n klein biblioteek met tutoriale en luislanggidse, wat verskillende terme bevat wat die volgende bevat:
Basiese Python-tutoriale
wxPython
PyQt en PySide
Django
web2py
Wetenskaplike programmering in luislang.
En nog vele meer.
Ek hoop dat hulle u dien, ek neem afskeid, soos altyd 'n plesier om tot hierdie wonderlike gemeenskap te behoort.
41 kommentaar, los joune
Dankie vir die berig!
2 dinge:
1. Qt is oorspronklik nie deur Nokia ontwikkel nie, maar deur Trolltech, wat later deur Nokia gekoop is. Laasgenoemde verkoop toe Qt aan Digia.
2. Die afbeelding in die eerste toepassingsvoorbeeld kom nie ooreen met die kode nie.
Dankie vir die tutoriaal, ek sal dit volg 🙂
U het heeltemal reg, ek het dit gemis. En die tweede ding wat u ook reg het, is dat ek dit verander het om dit makliker te maak en nie klas te gebruik nie, en ek het die verandering, beginnerfoute, gemis. Ek gee al die regstellings vir een of ander redakteur om dit goed te keur.
Ek kan nie verander nie, ek laat dit aan een of ander redakteur toe.
Groete.
Stuur 'n redakteur per e-pos met die aangepaste handleiding. U kan dit stuur na die e-pos van @nano wat een van die redakteurs is
mailto: nano.world.contact@gmail.com
moet asseblief nie die tutoriaal so los nie
groete
Een ding val my op: waarom gebruik u 'vanaf invoer *' in u kode?
Groete!
Dit is die korrekte manier om in te voer, as u so invoer, vertel u die spesifieke klas van die module wat u wil invoer, en u noem nie die hele module nie.
Groete.
Ek vind die soort verwarrend. Verder word dit nie in PEP8 aanbeveel nie:
"Die invoer van wildkaarte (vanaf module-invoer *) moet vermy word, aangesien dit onduidelik maak watter name in die naamruimte voorkom, wat lesers en baie outomatiese instrumente verwar ..."
Ek is meestal gelei deur professionele kodes, soos Ninja-Ide. U kan die kode hier sien: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyDit word ook in PyQt gedoen, maar in enige vorm is daar niks wat u dwing om die een of ander vorm te gebruik nie.
Hier kan u 'n bespreking oor StackOverflow sien, hieroor:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Daar noem hulle die voor- en nadele van elk van die style.
ok jammer ek het jou nie verstaan nie, ek weet dit, ek het dit net gedoen omdat ek nie 'n verduideliking van elke element QApplication, QWidget sou gee nie, veralgemeen dan is jy heeltemal reg.
Verskoon die misverstand.
Nee, u het dit nie verstaan nie of nie opgelet nie ... Ek bedoel die gebruik van «van module-invoer *», dit wil sê, ek bedoel die «sterretjie» ... in daardie StackOverflow-boodskap praat hulle oor iets anders, maar hulle beklemtoon dit steeds:
"Beide metodes is aanvaarbaar, maar gebruik dit nie vanaf module-invoer * nie."
Word dit nou verstaan?
Duits is reg. Wat is die nut van die invoer van module as u al die inhoud met die asteric vir die invoermodule invoer? Slds net so lekker boodskap.
Ahh nou, nou verstaan ek ... in elk geval, moet my nie te lank neem nie, ek is ook 'n beginner in Python. As u by my blog inloer, sal u sien dat ek 'n berig soortgelyk aan u gemaak het, maar met Gtk + 3 met PyGObject.
Groete en dankie!
Hier verlaat ek die Pep8, in Spaans, wat die gebruik van im beveel
Dit is baie raadsaam om relatiewe invoer te gebruik om kode uit 'n pakket in te voer. Gebruik altyd die absolute pad van die pakket vir alle invoer. Selfs nou dat PEP 328 [7] volledig in Python 2.5 geïmplementeer is, word die gebruik van relatiewe invoer ernstig ontmoedig; absolute invoer is meer draagbaar en gewoonlik meer leesbaar.
Wanneer u 'n klas uit 'n module invoer, is dit gewoonlik korrek
vanaf myclass invoer MyClass
vanaf foo.bar.yourclass voer u YourClass in
Groete
Lees hierdie: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (kernontwikkelaar) beveel so iets aan:
from PyQt4 import QtCore, QtGui
Ek wou meer hê, vir wanneer die 2de deel!?
Groete 🙂
Baie goeie tutoriale, en dit is gemakliker om te programmeer.
Hier is 'n voorbeeld van 'n koppelvlak van nuuts af (sonder om QtDesigner te gebruik).
https://github.com/xr09/metrocontador
Die dhunter-app is uitstekend, hier weet ons nie eens hoeveel hulle ons vir elektrisiteit vra nie, groet haha.
Dankie, dit is een van die programme wat 'n mens vir persoonlike gebruik maak en ander bedien. Hier in Kuba word die kwitansie op die koers afgebreek, dit is maklik om die algoritme te kopieer.
Ek is baie bewus van hierdie kursus. Ek stel al lank belang in toepassings op verskillende platforms en ek dink die kombinasie van Python + QT / Pyside is 'n uitstekende opsie. Groete en geluk met die inisiatief
Ek het al die stappe gevolg presies soos u sê, maar wanneer ek die app1.py-toepassing in die terminale uitvoer, word dit vir my gesê Traceback (laaste oproep laas):
Lêer "app1.py", reël 1, in
vanaf PySide.QtGui invoer *
ImportError: Geen module met die naam PySide.QtGui nie. Waarvoor is dit?
dit is omdat u 'n weergawe van python as standaardtolk gebruik, maar dat u nie 'n pyside vir die weergawe geïnstalleer het nie.
Probeer dit aan die begin van die lêer byvoeg:
#! usr / bin / python3
of anders
#! usr / bin / python2
Ek beveel aan dat u Eclipse saam met pydev gebruik en die tolk goed instel.
slds
#! / usr / bin / python3
of anders
#! / usr / bin / python2
PySide is nog nie versoenbaar met Python3 nie, wees versigtig daarmee, en tweedens, dit kontroleer die invoer deur die interaktiewe python-konsole, sodat u weet dat u dit het of nie, dit installeer ook pip.
Hoe kan ek dit verifieer?
In 'n konsole gebruik "Python", in elk geval, ek beveel aan dat u die biblioteek wat ek hier onder in die pos gelaat het, invoer en "python vir almal" aflaai, u het meer basis nodig.
Groete en geluk.
Baie dankie, dit was baie nuttig vir my.
kyk vriend F3niX Ek het dit gevind, dit lyk asof hulle vir python 3.3.2 op windows (wat ek tot volgende week het) binaries het vir 32 bits en 64 bits, ek het u voorbeeld probeer en dit werk met python 3.3.2 en Ek gebruik die PyScripter wat verskillende omgewings installeer. As u die python 3 oopmaak, word die skrifte as python 3 uitgevoer, en as u die 2.7 oopmaak, word dit uitgevoer as 2.7 ensovoorts (logies genoeg moet u die weergawe van python laat installeer ... dit word verstaan)
http://qt-project.org/wiki/PySide_Binaries_Windows
Ek sal jou daar agterlaat, skinder, miskien dien dit iemand anders 😀
Ek kry dieselfde fout.
Het u PySide geïnstalleer?
Ek laat dit installeer.
Probeer dit met PyQT4 installeer en verander dan die PySide-lyne vir PyQT4 of PyQt4, en laat dit loop. jojo. Gebruik die verduistering. Geluk.
Hoe doen ek dit?.
Baie dankie !!! Wag vir die tweede hoofstuk
Vir hierdie Vrydag mag ek dit groet (die universiteit het my 'n bietjie vol) groete.
Vriend F3nIX Ek wag vir u handleiding N ° 2, 3, 4 ... N hehehe
Ek het my baie elegante linux al geïnstalleer met die PySide wag en alles!
Kom ons kyk wanneer hy aangemoedig word om 'n nuwe tutor te wys 😀
Verskoon my vriend, ek het dit in konsepte, maar werk en studies het my nie tyd gegee nie, ek belowe om hierdie week iets uit te kry.
'N Groot groet
Hallo, ek stel al lank belang om Python te leer, maar ek twyfel. Wat ek wil hê, is om 'n aansoek te doen om die inligtingproses van die familiebesigheid waar ek werk, 'n bietjie te verbeter. Ek wil graag iets vir vensters doen, eers met vensters, dit werk alles op 'n enkele rekenaar en dan kan dit via die internet gekoppel wees aan die databasis waarop 'n paar rekenaars sal koppel. Daar is baie uiteenlopendheid in terme van die GUI van die toepassing, en dit maak my duiselig. Wat beveel u aan om dit 'n moderne en aantreklike voorkoms te gee? Ek sal ook statistiese grafieke doen en verslae druk, wat kan ek daarvoor gebruik? Cheers
Hallo, baie goed, u boodskap, ek het 'n vraag, kan ek my app met pyside sonder enige probleme verkoop?
Wel, lisensies is altyd mal, maar gratis sagtewarelisensies laat u ook toe om sagteware te verkoop. Wat gebeur, is dat die GPL u dwing om die kode te versprei, in teenstelling met die LGPL, wat u nie daartoe dwing nie.
Ek is in elk geval nie 'n kenner van lisensiëring nie.
Groete.