Ši pamoka skirta mokyti naudoti „QT“ sistemą naudojant „Python“ kaip programavimo kalbą, tam galime naudoti tiek „PySide“, tiek „PyQt“, tačiau šioje pamokoje naudosime „PySide“, nes šios pamokos autoriui labiau patinka „LGPL PySide“ licencija. nei GPL ar „PyQt Commercial“.
Rodiklis
Pirma ... Kas yra „Python“?
Pagal Vikipediją:
"Python yra labai aukšto lygio interpretuojama programavimo kalba, kurios filosofija pabrėžia labai švarią sintaksę ir palaiko įskaitomą kodą."
„Python“ yra daugiapadradigminė programavimo kalba, todėl ji palaiko įvairias „python“ programavimo paradigmas, pavyzdžiui, palaiko: „Object Oriented Programming“ (OOP), „Imperative Programming“ („Struktūruotą“) ir kiek mažiau „Funkcinį“ programavimą.
Tik tai, kad?
Ne, tai taip pat yra dinaminio spausdinimo kalba, o tai reiškia, kad pitonas leidžia mums priskirti skirtingo tipo reikšmes tam pačiam kintamajam vykdant programą, vieni tai vertina kaip pranašumą, kiti - kaip trūkumą, įsitikinkite patys .
Be to, kas jau buvo minėta, „Python“ leidžia mums (kaip ir daugeliui kitų) programuoti tiek žiniatinklio aplinkoje, tiek žiniatinklio darbalaukyje, jis taip pat yra daugiaplatformis, šiuo metu palaiko „Gnu / Linux“, „Windows“, „Mac OSX“, „Android“ (Jei reikia juos paminėti dėl savo modifikacijos).
Kas yra QT?
QT yra daugiaplatformis pagrindas, kurį iš pradžių sukūrė „Nokia“, kad vėliau būtų galima parduoti „Digia“, kuris naudojamas programų kūrimui, jis parašytas C ++, tačiau gali būti naudojamas kitomis kalbomis per „Bindings“ (mūsų atveju „PySide“ arba PyQt)
Skirtumai tarp PySide ir PyQt
Daugiausia
- Licencija, „PySide“ yra licencijuojama pagal LGPL sąlygas, o „PyQT“ - pagal GPL sąlygas arba pagal komercinę licenciją, todėl mes turėtume mokėti, jei sukursime uždarą programą.
- „PySide“ sukuria „Nokia“, o „PyQt“ - „RiverBank“.
- „PySide“ sutaupo problemų naudojant STR kiekvieną kartą, kai naudojame kiekvieno QT objekto QString.
Mes galime išsamiai apibūdinti visus pakeitimus Čia.
Paruošimo būdas:
Mes įdiegiame Qt:
Jei turime platinimo su Kde, mes jau turėtume tai, ko mums reikia, jei ne:
sudo apt-get install qt4-dev-tools
Įdiegiame „PySide“:
sudo apt-get install pyside pyside-tools
Mūsų pirmoji „Python + QT“ programa
Mes einame į mūsų mėgstamą teksto rengyklę, aš rekomenduoju įdiegti sublime-text2, bet jūs galite naudoti tą, kurį norite, ir mes įveskite šį kodą ir išsaugome jį pavadinimu, kurio norime, visada baigiantis plėtiniu ".py" , Aš išsaugosiu kaip app1.py:
Mes jį valdome iš konsolės taip:
python app1.py
Šis langas turėtų pasirodyti
Ką? Tik tai, nes jei anksčiau turėjote tik pultą, kuo skundžiatės? Ko tikėjotės, Erp? ateik žmogui, kai kažkas prasideda.
Dabar paaiškinkime kodą:
from PySide.QtGui import *
from sys import exit, argv
Čia importuojame reikiamus modulius, reikalingus „PySide“ vykdymui.
app = QApplication(argv)
Kuriame „Qapplication“ egzempliorių su pavadinimo programa.
window = Qwidget()
Sukuriame „QWidget“ () egzempliorių.
window.setWindowTitle("Primera App PySide")
Vykdome metodą „setWindowTitle“, kuris gauna eilutę kaip parametrą „nustatyti“ mūsų „Qwidget“ pavadinimą.
window.show()
Mes parodome savo langą
exit(app.exec_())
galiausiai mes atliekame begalinį mūsų QApplication () vykdymo ciklą.
Ačiū
Ačiū tiems, kurie sekė mane čia ir buvo naudingi. Kitoje pamokoje paaiškinsiu, kaip su „QT Designer“ projektuoti langus ir juos importuoti į mūsų projektus.
Be to, pridedu nuorodą į forumą iš „Linux“, kur turiu nedidelę temą su maža pamokų ir „python“ vadovų biblioteka, kurioje yra įvairių terminų, kurie apima:
Pagrindinės „Python“ mokymo programos
„WxPython“
PyQt ir PySide
Django
„Web2Py“
Mokslinis programavimas pitone.
Ir daug daugiau.
Tikiuosi, kad jie tau tarnauja, atsisveikinu, kaip visada malonu priklausyti šiai nuostabiai bendruomenei.
41 komentarai, palikite savo
Ačiū už įrašą!
2 dalykai:
1. „Qt“ iš pradžių sukūrė ne „Nokia“, o „Trolltech“, kurį vėliau nusipirko „Nokia“. Tada pastaroji pardavė „Qt“ „Digia“.
2. Pirmojo programos pavyzdžio vaizdas neatitinka kodo.
Ačiū už pamoką, aš jos laikysiuosi 🙂
Tu visiškai teisus, man jo netrūko. Antras dalykas, kurį jūs taip pat teisus, yra tai, kad aš jį pakeičiau, kad būtų lengviau ir nenaudotų klasės, ir aš praleidau modifikaciją, pradedančiųjų klaidas. Aš jau perduodu taisymus, kad kai kurie redaktoriai juos patvirtintų.
Negaliu modifikuoti, palieku tai kažkam redaktoriui.
Sveikinimai.
Siųskite redaktorių el. Paštu su pataisyta pamoka. galite nusiųsti į @ nano, kuris yra vienas iš redaktorių, el. laišką
mailto: nano.world.contact@gmail.com
nepalikite tokios pamokos
dėl
Mane stebina vienas dalykas: kodėl kode naudojate „iš importo *“?
Sveiki atvykę!
Tai yra teisingas importavimo būdas, kai importuodami taip, nurodote, kokią konkrečią modulio klasę norite importuoti, ir nepaskambinate į visą modulį.
Sveikinimai.
Manau, kad tokia painiava. Be to, PEP8 nerekomenduojama:
"Reikėtų vengti pakaitinių simbolių importavimo (iš modulio importavimo *), nes dėl jų neaišku, kurie vardai yra vardų srityje, supainiodami tiek skaitytojus, tiek daugelį automatizuotų įrankių ..."
Aš daugiausia vadovavausi profesionaliais kodais, tokiais kaip „Ninja-Ide“, kodą galite pamatyti čia: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyTai daroma ir „PyQt“, tačiau jokiu būdu niekas nepriverčia naudoti vienos ar kitos formos.
Čia galite pamatyti „StackOverflow“ diskusiją apie tai:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Ten jie mini kiekvieno stiliaus pliusus ir minusus.
gerai, atsiprašau, kad nesupratau tavęs, aš tai žinau, aš tai padariau tik todėl, kad neketinau paaiškinti kiekvieno elemento QApplication, QWidget, tada apibendrink, bet tu visiškai teisus.
Atleiskite nesusipratimą.
Ne, jūs nesupratote arba nekreipėte į tai dėmesio ... Aš turiu omenyje «iš modulio importo *», tai yra, turiu omenyje «žvaigždutę» ... tame „StackOverflow“ įraše, apie kurį jie kalba apie ką nors kita, bet jie vis tiek tai pabrėžia:
"Bet kuris metodas yra priimtinas, bet nenaudokite iš modulio importavimo *."
Ar tai dabar suprantama?
Vokietis teisus. Kuo naudinga importuoti iš modulio, jei importuojate visą importo modulio turinį su žvaigždute. Slds toks pat gražus įrašas.
Na, dabar aš suprantu ... bet kokiu atveju, neimk manęs per ilgai, aš taip pat esu „Python“ pradedantysis. Jei užsuksite į mano tinklaraštį, pamatysite, kad naudodamasis PyGObject, aš parašiau panašų į jūsų įrašą, bet naudodamas „Gtk + 3“.
Sveikinimai ir ačiū!
Čia palieku „Pep8“, ispaniškai rekomenduoju naudoti im
Labai nepatartina naudoti santykinį importą importuojant kodą iš pakuotės. Visam importui visada naudokite absoliutų paketo kelią. Net ir dabar, kai PEP 328 [7] yra visiškai įdiegtas „Python 2.5“, rimtai nerekomenduojama naudoti santykinio importo; absoliutus importas yra labiau nešiojamas ir paprastai skaitomesnis.
Kai importuojate klasę iš modulio, tai padaryti yra teisinga
iš myclass importuokite MyClass
iš foo.bar.yourclass importuokite „YourClass“
saludos
Perskaityk tai: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alexas Martelli (pagrindinis py kūrėjas) rekomenduoja kažką panašaus:
from PyQt4 import QtCore, QtGui
Norėjau daugiau, kai 2-oji dalis!?
Sveikinimai 🙂
Labai geros pamokos, be to, gali būti patogiau programuoti.
Čia yra sąsajos pavyzdys nuo nulio (nenaudojant „QtDesigner“).
https://github.com/xr09/metrocontador
Dhunter programa yra puiki, čia mes net nežinome, kiek jie moka mus už elektrą, haha sveikinimai.
Ačiū, tai yra viena iš tų programų, kurias sukuria asmeniniam naudojimui ir kuri tarnauja kitiems. Čia Kuboje kvitas suskirstytas pagal normą, algoritmą lengva nukopijuoti.
Aš labai gerai žinosiu šį kursą. Aš jau seniai domiuosi tarpplatformių programų kūrimu ir manau, kad „Python + QT / Pyside“ derinys yra puikus pasirinkimas. Sveikinimai ir sveikinimai už iniciatyvą
Aš atlikau visus veiksmus tiksliai taip, kaip sakote, bet kai paleidžiu „app1.py“ programą terminale, ji man sako „Traceback“ (paskutinis paskutinis skambutis):
Failas „app1.py“, 1 eilutė
iš „PySide.QtGui“ importo *
ImportError: Nėra modulio pavadinimu PySide.QtGui. Kas tai yra?
Taip yra todėl, kad jūs naudojate python versiją kaip numatytąjį vertėją, tačiau neturite tos versijos „pyside“.
Pabandykite pridėti failo pradžioje:
#! usr / bin / python3
arba
#! usr / bin / python2
Aš rekomenduoju jums naudoti „Eclipse“ su „pydev“ ir gerai sukonfigūruoti vertėją.
slds
3. / usr / bin / python
arba
2. / usr / bin / python
„PySide“ dar nesuderinamas su „Python3“, būkite atsargūs su tuo ir, antra, patikrinkite importavimą per interaktyvią „Python“ konsolę, kad žinotumėte, jog ją įdiegėte, ar ne, ji taip pat įdiegia „pip“.
Kaip tai patikrinti?
Jei naudojate konsolę „Python“, vis tiek rekomenduoju jums įvesti biblioteką, kurią palikau žemiau įraše, ir atsisiųsti „python visiems“, jums reikia daugiau bazės.
Sveikinimai ir sėkmė.
Labai ačiū, tai man buvo labai naudinga.
ieškok draugo F3niX. Tai radau, atrodo, kad „Python 3.3.2“ sistemoje „Windows“ (ką aš turiu iki kitos savaitės) jie turi dvejetainius failus 32 bitams ir 64 bitams, aš išbandžiau jūsų pavyzdį ir jis veikia su „Python 3.3.2“ ir Aš naudoju „PyScripter“, kuris įdiegia skirtingas aplinkas. Jei atidarote „python 3“, jis paleidžia scenarijus kaip „python 3“, o jei atidarote 2.7, jis juos vykdo kaip 2.7 ir pan. (Logiška, kad turite turėti tą python versiją ... tai suprantama)
http://qt-project.org/wiki/PySide_Binaries_Windows
Paliksiu tave ten, apkalbos, gal tai pasitarnaus kitam 😀
Gaunu tą pačią klaidą.
Ar turite įdiegtą „PySide“?
Aš jį įdiegiau.
Pabandykite su „PyQT4“ įdiekite, tada pakeiskite „PySide“ eilutes į „PyQT4“ arba „PyQt4“ ir leiskite jai vykdyti. jojo. Naudokite užtemimą. Sėkmė.
Kaip tai padaryti?.
Labai ačiū !!! Laukiama antrojo skyriaus
Šį penktadienį galiu paskelbti sveikinimus.
Draugas F3nIX Laukiu jūsų pamokos Nr. 2, 3, 4 ... N hehehe
Aš jau turiu įdiegtą savo labai elegantišką „Linux“ su laukiančiu „PySide“ ir viskas!
Pažiūrėkime, kada jis bus paragintas parodyti naują auklėtoją 😀
Atleisk, drauge, aš to turiu juodraščiuose, bet darbas ir studijos man nedavė laiko, žadu šią savaitę ką nors gauti.
Didelis sveikinimas
Sveiki, man jau seniai įdomu mokytis Python, bet aš abejoju. Noriu sukurti paraišką, kad būtų šiek tiek pagerintas šeimos verslo, kuriame aš dirbu, informacinis procesas, norėčiau ką nors padaryti dėl langų, iš pradžių su langais, visa tai veiktų viename kompiuteryje ir tada jis galėtų būti prijungtas internetu prie duomenų bazės, prie kurios prisijungtų pora kompiuterių. Programos GUI kūrimas yra labai įvairus, todėl man svaigsta galva. Ką rekomenduojate suteikti jai modernią ir patrauklią išvaizdą? Aš taip pat norėčiau padaryti keletą statistinių diagramų ir atsispausdinti ataskaitas, ką aš galiu tam naudoti? linkėjimais
Sveiki, labai gerai, jūsų įrašas, turiu klausimą, ar galėčiau be problemų parduoti savo programą, pagamintą naudojant „pyside“?
Na, licencijos visada yra beprotiškos, tačiau nemokamos programinės įrangos licencijos taip pat leidžia parduoti programinę įrangą, kas atsitinka taip, kad GPL priverčia jus platinti kodą, skirtingai nei LGPL, kuris jūsų neverčia to daryti.
Bet kokiu atveju nesu licencijavimo ekspertas.
Sveikinimai.