Ĉi tiu lernilo fokusas instrui la uzon de la QT-kadro uzante Python kiel programlingvo, por tio ni povas uzi ambaŭ PySide kaj PyQt, sed en ĉi tiu lernilo ni uzos PySide ĉar la aŭtoro de ĉi tiu lernilo pli ŝatas la permesilon LGPL PySide. ol la Komerca GPL aŭ PyQt.
Indekso
Unue ... Kio estas Python?
Laŭ Vikipedio:
"Python estas tre altnivela interpretita programlingvo, kies filozofio emfazas tre puran sintakson kaj favoras legeblan kodon."
Python estas plurdadigma programlingvo, do ĝi subtenas malsamajn pitonajn programadajn paradigmojn, ekzemple ĝi subtenas: Objektan Orientitan Programadon (OOP), Imperativan Programadon (Strukturitan) kaj malpli multe Funkcian programadon.
Nur tio?
Ne, ĝi ankaŭ estas dinamika tajplingvo, kio signifas, ke python permesas al ni atribui malsamajn specojn de valoroj al la sama variablo dum la ekzekuto de la programo, iuj vidas ĝin kiel avantaĝon, aliaj kiel malavantaĝon, rigardu mem .
Aldone al la menciita, Python permesas al ni (kiel multaj aliaj) programi kaj en la interreta medio kaj en la interreta labortablo, ĝi ankaŭ estas plurplatforma, nuntempe ĝi subtenas Gnu / Linukso, Vindozo, Mac osx, Android (Se vi bezonas mencii ilin por via modifo).
Kio estas QT?
QT estas plurplatforma kadro, origine disvolvita de Nokia, por poste esti vendita al Digia, kiu estas uzata por disvolvo de aplikaĵoj, estas skribita en C ++, sed uzebla en aliaj lingvoj per Bindings (en nia kazo PySide aŭ PyQt )
Diferencoj inter PySide kaj PyQt
Ĉefe
- Permesilo, PySide estas rajtigita laŭ la kondiĉoj de la LGPL kaj PyQT laŭ la kondiĉoj de la GPL aŭ laŭ komerca licenco, do ni bezonus pagi kaze de kreo de fermita aplikaĵo.
- PySide estas kreita de Nokia, kaj PyQt de RiverBank.
- PySide ŝparas al ni la problemon uzi STR ĉiun fojon kiam ni uzas la QString de ĉiu el la QT-objektoj.
Ni povas detaligi la kompletajn ŝanĝojn Kies.
Preparado:
Ni instalas Qt:
Se ni havas distribuon kun Kde, ni jam havu tion, kion ni bezonas, se ne:
sudo apt-get install qt4-dev-tools
Ni instalas PySide:
sudo apt-get install pyside pyside-tools
Nia Unua Apliko Python + QT
Ni iras al nia plej ŝatata tekstredaktilo, mi rekomendas al vi instali sublime-text2, sed vi povas uzi tiun, kiun vi preferas, kaj ni tajpas la jenan kodon kaj konservas ĝin per la nomo, kiun ni volas, ĉiam finiĝante per la etendaĵo ".py" , Mi volas Mi konservos kiel app1.py:
Ni kuras ĝin de la konzolo tiel:
python app1.py
Ĉi tiu fenestro devas aperi
Kio? Nur tio, ĉar se vi nur havis konzolon antaŭe, pri kio vi plendas? Kion vi atendis, Erp? venu viro, io komenciĝas.
Nun ni klarigu la kodon:
from PySide.QtGui import *
from sys import exit, argv
Ĉi tie ni importas la necesajn modulojn por PySide-ekzekuto.
app = QApplication(argv)
Ni kreas la Qapplication-ekzemplon per la nomo-programo.
window = Qwidget()
Ni kreas la ekzemplon QWidget ().
window.setWindowTitle("Primera App PySide")
Ni ekzekutas la setWindowTitle-metodon, kiu ricevas String kiel parametron por "agordi" la titolon de nia Qwidget.
window.show()
Ni montras nian fenestron
exit(app.exec_())
fine ni ekzekutas la senfinan ekzekutciklon de nia QApplication ().
danke
Dankon pro tiuj, kiuj sekvis min ĉi tie kaj estis utilaj. Por la sekva lernilo mi klarigos kiel desegni niajn fenestrojn per QT Designer kaj importi ilin en niajn projektojn.
Aldone, mi aldonas la ligon al la forumo de linux, kie mi havas malgrandan temon kun malgranda biblioteko de pitonaj lerniloj kaj gvidiloj, kiu enhavas malsamajn terminojn, kiuj inkluzivas:
Bazaj Python-lerniloj
wxPython
PyQt kaj PySide
Django
web2py
Scienca programado en pitono.
Kaj multe pli.
Mi esperas, ke ili servos vin, mi adiaŭas, kiel ĉiam plezuro aparteni al ĉi tiu mirinda komunumo.
41 komentoj, lasu la viajn
Dankon pro la afiŝo!
2 aferoj:
1. Qt ne estis origine disvolvita de Nokia, sed de Trolltech, kiu poste estis aĉetita de Nokia. Ĉi-lasta tiam vendis Qt al Digia.
2. La bildo en la unua aplika ekzemplo ne kongruas kun la kodo.
Dankon pro la lernilo, mi sekvos ĝin 🙂
Vi tute pravas, ke mi maltrafis ĝin. Kaj la dua afero, kiun vi ankaŭ pravas, estas, ke mi ŝanĝis ĝin por faciligi ĝin kaj ne uzi klason, kaj mi maltrafis la modifajn erarojn por komencantoj. Mi jam pasigas la korektojn por ke iu redaktoro aprobu ilin.
Mi ne povas modifi ĝin, mi lasas ĝin al iu redaktoro.
Salutojn.
Retpoŝti redaktoron per la korektita lernilo. vi povas sendi ĝin al la retpoŝto de @nano, kiu estas unu el la redaktantoj
mailto: nano.world.contact@gmail.com
bonvolu ne forlasi la lernilon tiel
salutojn
Unu afero frapas min: kial vi uzas "de importo *" en via kodo?
Dankon!
Ĝi estas la ĝusta maniero importi, kiam vi importas tiel, vi diras al ĝi, kiun specifan klason de la modulo vi volas importi, kaj vi ne nomas la tutan modulon.
Salutojn.
Mi trovas tian konfuzan. Krome, ĝi ne rekomendas en PEP8:
"Komercaj importadoj (de modula importado *) devas esti evititaj, ĉar ili ne klarigas, kiuj nomoj ĉeestas en la nomspaco, konfuzante ambaŭ legantojn kaj multajn aŭtomatajn ilojn ..."
Min gvidis plejparte profesiaj kodoj, kiel ekzemple Ninja-Ide, vi povas vidi la kodon ĉi tie: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyĜi fariĝas ankaŭ en PyQt, sed iel ajn nenio devigas vin uzi unu aŭ la alian formon.
Ĉi tie vi povas vidi diskuton pri StackOverflow pri tio:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Tie ili mencias avantaĝojn kaj malavantaĝojn de ĉiu el la stiloj.
bone pardonu ke mi ne komprenis vin, mi scias tion, mi faris ĝin nur ĉar mi ne intencis doni klarigon pri ĉiu elemento QApplication, QWidget, tiam ĝeneraligu sed vi tute pravas.
Pardonu la miskomprenon.
Ne, vi ne komprenis aŭ vi ne atentis ... Mi celas uzi «de modula importado *», tio estas, mi celas la «asteriskon» ... en tiu afiŝo de StackOverflow ili parolas pri io alia, sed ili tamen emfazas ĝin:
"Ambaŭ metodoj estas akcepteblaj, sed ne uzu de modula importado *."
Ĉu ĝi kompreniĝas nun?
La germana pravas. Kio estas la uzo de la modula importado se vi importas la tutan enhavon per la asteriko, por tiu importa modulo. Slds same bela afiŝo.
Ahh nu, nun mi komprenas ... ĉiuokaze, ne prenu min tro longe, mi ankaŭ estas komencanto en Python. Se vi preterpasos mian blogon, vi vidos, ke mi faris afiŝon similan al via, sed kun Gtk + 3 per PyGObject.
Saluton kaj dankon!
Jen mi lasas la Pep8, en la hispana rekomendante la uzon de im
Estas tre malrekomendinde uzi relativajn importojn por importi kodon de pako. Ĉiam uzu la absolutan pakan vojon por ĉiuj importoj. Eĉ nun, kiam PEP 328 [7] estas plene efektivigita en Python 2.5, uzado de relativaj importadoj estas grave malinstigita; absolutaj importoj estas pli porteblaj kaj kutime pli legeblaj.
Kiam vi importas klason de modulo, kutime estas ĝuste fari tion
de myclass importi MyClass
de foo.bar.yourclass importu Vian Klason
salutoj
Legu ĉi tion: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (kerna programisto) rekomendas ion tian:
from PyQt4 import QtCore, QtGui
Mi volis pli, por kiam la 2a parto!?
Salutojn 🙂
Tre bonaj lerniloj, krome eble estus pli komforte programi.
Jen ekzemplo de interfaco de nulo (sen uzi QtDesigner).
https://github.com/xr09/metrocontador
La dhunter-programo estas bonega, ĉi tie ni eĉ ne scias, kiom ili ŝargas nin por elektro, haha salutojn.
Dankon, ĝi estas unu el tiuj programoj, kiujn oni faras por persona uzo kaj servas al aliaj. Ĉi tie en Kubo la kvitanco estas listigita kun la imposto, estas facile kopii la algoritmon.
Mi estos tre konscia pri ĉi tiu kurso. Mi delonge interesas fari diversplatformajn aplikojn kaj mi pensas, ke la kombinaĵo Python + QT / Pyside estas bonega eblo. Salutojn kaj gratulojn pro la iniciato
Mi sekvis ĉiujn paŝojn ĝuste kiel vi diras, sed kiam mi lanĉas la programon app1.py en la fina stacio, ĝi diras al mi Traceback (plej freŝa voko laste):
Dosiero "app1.py", linio 1, en
de PySide.QtGui importado *
ImportError: Neniu modulo nomata PySide.QtGui. Por kio estas ĉi tio ?.
tio estas ĉar vi uzas version de python kiel defaŭltan interpretilon, sed vi ne havas kamparan instalitan por tiu versio.
Provu aldoni komence de la dosiero:
#! usr / bin / python3
alie
#! usr / bin / python2
Mi rekomendas vin uzi Eklipson kun pydev kaj agordi la interpretilon bone.
slds
#! / usr / bin / python3
alie
#! / usr / bin / python2
PySide ankoraŭ ne kongruas kun Python3, zorgu pri tio, kaj due, ĝi kontrolas la importojn per la interaga python-konzolo, do vi scias, ke vi havas ĝin instalita aŭ ne, ĝi ankaŭ instalas pip.
Kiel mi konfirmas ĝin?
En konzolo uzu "Python", ĉiuokaze mi rekomendas vin eniri la bibliotekon, kiun mi lasis sube en la afiŝo, kaj elŝuti "python por ĉiuj", vi bezonas pli da bazo.
Salutojn kaj bonŝancon.
Koran dankon, ĝi tre helpis min.
rigardu amiko F3niX Mi trovis ĉi tion, ŝajnas ke por python 3.3.2 ĉe fenestroj (kio estas ĝis la venonta semajno) ili havas duumaĵojn por 32 bitoj kaj 64 bitoj, mi provis vian ekzemplon kaj ĝi funkcias kun python 3.3.2 kaj Mi uzas La PyScripter, kiu instalas malsamajn mediojn, se vi malfermas la python 3, ĝi rulas la skriptojn kiel python 3 kaj se vi malfermas la 2.7 ĝi ekzekutas ilin kiel 2.7 kaj tiel plu (logike vi devas havi tiun version de python instalita ... ĝi komprenas)
http://qt-project.org/wiki/PySide_Binaries_Windows
Mi lasos vin tie, klaĉo, eble ĝi utilos al iu alia 😀
Mi ricevas la saman eraron.
Ĉu vi havas PySide instalita?
Mi instalis ĝin.
Kaj provu per PyQT4 instali ĝin kaj poste ŝanĝi la PySide-liniojn por PyQT4 aŭ PyQt4, kaj lanĉu ĝin. jojo. Uzu la eklipson. Ŝanco.
Kiel mi faras tion ?.
Dankegon !!! Atendante la duan ĉapitron
Por ĉi tiu vendredo mi eble publikigos ĝin (La universitato havas min iomete plena) salutojn.
Amiko F3nIX Mi atendas vian lernilon N ° 2, 3, 4 ... N hehehe
Mi jam havas mian tre elegantan linukson instalitan kun la PySide atendanta kaj ĉio!
Ni vidu, kiam li kuraĝigos montri novan instruiston 😀
Pardonu min amiko, mi havas ĝin en projektoj, sed laboro kaj studoj ne donis al mi tempon, mi promesas eltiri ion ĉi-semajne.
Grandan saluton
Saluton, mi delonge interesas lerni Python sed mi havas iujn dubojn. Kion mi volas estas fari programon por iom plibonigi la informan procezon de la familia entrepreno, kie mi laboras, mi ŝatus fari ion por fenestroj, kun fenestroj unue, ĝi funkcius ĉio sur unu komputilo kaj poste ke ĝi povas estu konektita per interreto al la datumbazo al kiu konektus paro da komputiloj. Estas multe da diverseco rilate al Gvidado de la aplikaĵo kaj tio kapturnigas min. Kion vi rekomendas por doni al ĝi modernan kaj allogan aspekton? Mi ankaŭ farus iujn statistikajn grafikaĵojn kaj presus raportojn, kion mi povas uzi por tio? salutojn
Saluton, tre bone, via afiŝo, mi havas demandon, ĉu mi povus vendi mian programon faritan kun kamparo senprobleme?
Nu, licencoj estas ĉiam frenezaj, sed liberaj programaj permesiloj ankaŭ permesas vin vendi programojn, kio okazas estas, ke la GPL devigas vin disdoni la kodon, male al la LGPL, kiu ne devigas vin fari tion.
Ĉiukaze mi ne estas spertulo pri rajtigado.
Salutojn.