Kelių platformų programos su „Python“, „PyQT“ ir „QT Desginer 5“

Turinys
Python yra programavimo kalba į kurį būdingas daugiapakopis kaip leidžia programuoti į objektą orientuotą ir funkcinę paradigmą, turi standartizuotą biblioteką.
Programinei įrangai ir žiniatinklio programoms kurti yra daug „Python“ įrankių ir bibliotekų, ekrano dizaino atveju galime naudoti įvairias bibliotekas, pvz. „wxPython“, „PyQt“, „PySide“ arba PyGTK Norėdami piešti mūsų sąsają ir tada programą, taip pat yra žiniatinklio rėmelių, tokių kaip „Django“, šioje pamokoje pamatysime, kaip sukurti kelių platformų darbalaukio programas naudojant PyQT 5.

PyQt5 yra „Python“ įrankių biblioteka jam QT5 sistema. Jis prieinamas „Python 3.x“.
„PyQt5“ yra įdiegtas kaip „Python“ modulių rinkinys. Tai leidžia mums susieti mūsų sukurtus dizainus su „QT Designer“ ir tada juos išversti naudojant „Py Qt“, kad jie būtų vykdomi naudojant „Python“ visose operacinėse sistemose, tokiose kaip „Linux Windows“ ir „Mac OS“.
Kad galėtume kurti programas, turime įdiegti reikiamas programas ir priklausomybes. Šioje pamokoje kaip operacinė sistema bus naudojama „Linux Mint“ versija, tačiau ji gali būti pritaikyta bet kuriai operacinei sistemai.
Kituose vadovėliuose mes naudojame Qt programuoti C ++, daugiaplatformį programavimą C ++ ir Qt pagal GNU / Linux Environment ir QT programavimą bei SQLite duomenų bazes.
Pirmiausia įdiekime „QT Designer 5“, iš terminalo lango atsisiųsime ir įdiegsime
 $ wget http://download.qt-project.org/official_releases/qt/5.3/5.3.0/qt-Abrirsource-linux-x64-5.3.0.run $ chmod + x qt-Abrirsource-linux-x64-5.3 .0.run $ sudo ./qt-Abrirsource-linux-x64-5.3.0.run
Toliau turime įdiegti „Python“ kūrimo bibliotekas:
 sudo apt-get install pyqt5-dev-tools
Toliau turime įdiegti „Python“ plėtinį, vadinamą SIP, kuris yra kodų generatorius, specialiai sukurtas „Python“ kodui kurti. Tai leis „Qt Designer“ dizaino failą perskaityti ir išversti į „Python“ kodą. Sukurtą kodą galima surinkti „Python“ v2 ir v3.
Atsisiųsime SIP iš oficialios svetainės, tada einame į aplanką, kuriame jį atsisiuntėme, išpakuokite failą sip-4.17.tar.gz, prieiname prie aplanko ir sukonfigūruojame SIP ir įdiegiame naudodami šį kodą iš terminalo lango.
 python configure.py padaryti make install
Mes nustatėme QT5 kaip numatytąją versiją:
 sudo apt-get install qt5-default
Galiausiai atsisiųsime ir įdiegsime „PyQt“, kurios yra bibliotekos, kurias turėsime susieti su „Python“ ir „QT Designer“
Atsisiųskite „PyQt“ iš oficialios svetainės, tada einame į aplanką, kuriame jį atsisiuntėme, išpakuokite „PyQt“ failą ir pasiekiame aplanką ir sukonfigūruokite jį naudodami šį kodą iš terminalo lango.
 python configure.py
Mes sukursime paprastą „Qt“ dizainerio programą, mes sukursime dizainą užimdami formą, mus domins tik failas su vartotojo plėtiniu, kuris bus dizaino sąsaja. Mūsų projektas vadinamas Dialoga.

Toliau mes pasirinksime lango tipą, kurį naudos mūsų programa, šiuo atveju kaip šabloną naudosime dialogą su dviem mygtukais.

Tada turėsime ekraną su savo langu, kurį suprojektuosime, pridėsime „TextEdit“ ir išsaugosime failą

Tada mes einame į aplanką projektai, taip pat bus sukurti atitinkami c ++ failai, tačiau naudosime tik ui failą.
Toliau iš terminalo turėsime išversti failą dialoga.ui į python, iš terminalo lango naudojame šią komandą:
 pyuic5 -o dialoga.py dialoga.ui

Taip sugeneruojamas dialogas.py failas, kuris buvo sukurtas naudojant „c ++“, dabar pasiekiamą „Python“, kodas yra toks
 # - * - kodavimas: utf -8 - * - # Formos diegimas sugeneruotas skaitant ui failą „dialoga.ui“ # # Sukurtas: Mon Oct 26 21:31:56 2015 # by: PyQt5 UI code generator 5.2.1 from PyQt5 importuoti QtCore, QtGui, QtWidgets klasę Ui_DialogA (objektas): def setupUi (self, DialogA): DialogA.setObjectName ("DialogA") DialogA.resize (400, 300) self.buttonBox = QtWidgets.QDialogButtonBox (DialogButtonBox DialogA) self. SetGeometry (QtCore.QRect (30, 240, 341, 32)) self.buttonBox.setOrientation (QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons (QtWidgets.QDialogButtonBoxonButton.Button.Button.ButtonButton.Button.Button.Button.Button.Button . ("buttonBox") self.textEdit = QtWidgets.QTextEdit (DialogA) self.textEdit.setGeometry (QtCore.QRect (20, 20, 361, 201)) self.textEdit.setObjectName ("textEdit") self.retranslateUi (DialogA ) self.buttonBox.accepted.connect (DialogA.accept) self.buttonBox.reject.connect (DialogA.reject) QtCore.QMetaObject.connectSlotsByName (DialogA) def retranslateUi (self, DialogA): _translate = QtCore. plication.translate DialogA.setWindowTitle (_translate ("DialogA", "Dialog"))
Tai viskas, ką mes kuriame „Qt Designer“, dabar turime susieti jį su kodu, kuris jį naudoja, tam sukursime failą startup.py ir parašysime šį kodą:
 importuoti sys iš PyQt5.QtWidgets importuoti QApplication, QDialog iš dialoga import * app = QApplication (sys.argv) window = QDialog () ui = Ui_DialogA () ui.setupUi (window) window.show () sys.exit (app.exec_ ())
Matome, kad importuojame grafinio ekrano bibliotekas ir importuojame failo dialogo langą su dizainu.
Tada mes nurodome, kad langas bus dialogo langas, ui lange bus dizainas, apibrėžtas Ui_DialogA () klasėje, apibrėžtoje dizaino faile, ir galiausiai tas dizainas priskiriamas langui per „setupUi“ funkciją.
Išsaugome ir vykdome komandų lange taip:
 python3 home.py

Žemiau sukursime paprastą, bet funkcionalų teksto rengyklę. Mes sukursime naują projektą, kuriame norime sukurti grafines sąsajas. Projektą vadinsime „MyEditor“.

Tada kaip šabloną pasirenkame „MainWindow“. Projektuodami galime turėti meniu ir teksto redagavimą. Čia bus svarbu kiekvienam objektui suteikti pavadinimą, kad vėliau būtų galima jį identifikuoti ir pateikti nuorodą iš „Python“ kodo. Tada mes jį išsaugome ir konvertuojame ui failą į python.
Mes konvertuojame iš terminalo lango naudodami šią komandą:
 pyuic5 -o mieditor.py mieditor.ui
„Python“ dizaino kodas bus toks:
 # - * - kodavimas: utf -8 - * - # Formos diegimas, sukurtas skaitant ui failą '/testqt/mieditor.ui' # # Sukurtas: Mon Oct 26 10:32:56 2015 # by: PyQt5 UI code generator 5.2. 1 # # ĮSPĖJIMAS! Visi šio failo pakeitimai bus prarasti! iš „PyQt5“ importuoti „QtCore“, „QMainWindow“, „QApplication“, „QtGui“, „QtWidgets“ klasė Ui_MainWindow (objektas): def setupUi (self, MainWindow): MainWindow.setObjectName ("MainWindow") MainWindow.resize (533, 317.Q.GtUI) MainWindow) self.centralwidget.setObjectName ("centralwidget") self.gridLayout = QtGui.QGridLayout (self.centralwidget) self.gridLayout.setObjectName ("gridLayout") self.textEdit = QtGui.QT.xt.dit.dd ( (self.centraldit.) Self.textEdit (self.centraldit.) setObjectName ("textEdit") self.gridLayout.addWidget (self.textEdit, 0, 0, 1, 1) MainWindow.setCentralWidget (self.centralwidget) self.menubar = QtGui.QMenuBar (MainWindow) self.menubar.setGeometry (QtCore. QRect (0, 0, 533, 25)) self.menubar.setObjectName ("menubar") self.menu_File = QtGui.QMenu (self.menubar) self. menu_File.setObjectName ("menu_File") self.menu_Help = QtGui.QMenu (self.menubar) self.menu_Help.setObjectName ("menu_Help") MainWindow.setMenuBar (self.menubar) self.statusbar = QtGar. MainStatus statusbar.setObjectNam e ("statusbar") MainWindow.setStatusBar (self.statusbar) self.action_New = QtGui.QAction (MainWindow) self.action_Nuevo.setObjectName ("action_New") self.action_Open = QtGui.QAction (MainWindow) self.action self.action_bjectName (SetObjectName) "action_Abrir") self.action_Save = QtGui.QAction (MainWindow) self.action_Save.setObjectName ("action_Save") self.actionSave_As = QtGui.QAction (MainWindow) self.action.action self.action_Quit. QAction (MainWindow) self.action_Quit.setObjectName ("action_Quit") self.actionA_bout = QtGui.QAction (MainWindow) self.actionA_bout.setObjectName ("actionA_bout") self.action_Help =Atpardavimas action_Help (MainWindow) self.action_Help "action_Help") self.menu_File.addAction (self.action_New) self.menu_File.addAction (self.action_Open) self.menu_File.addAction (self.action_Open) self.menu_File.addAction (self.action_Save) self.menu_File. ) self.menu_File (self.ActionSave_As) self.menu_File self.action_Quit) self.menu_Help.addAction (self.actionA_bout) self.menu_Help.addAction (self). action_Help) self.menubar.addAction (self.menu_File.menuAction ()) self.menubar.addAction (self.menu_Help.menuAction ()) self.retranslateUi (MainWindow) QtCore.QObject.connect (self.action_Quit, QtCore self.action_Quit, QtCore.SIGNAL ("triggered ()"), MainWindow.close) QtCore.QMetaObject.connectSlotsByName (MainWindow) def retranslateUi (self, MainWindow): MainWindow.setWindowTitle (QtGui.Window.itle) MiEditor ", Nėra, QApplicationGui", Nėra, QApplicationGui ".UnicodeUTF8)) self.menu_File.setTitle (QtGui.QApplication.translate (" MainWindow "," & File ", Nėra, QtGui.QApplication.UnicUT.UnicUT.UnicUT setTitle ("QtGui.QApplication.translate", "QtGui.QApplication.translate" ir pagalba ", Nėra, QtGui.QApplication.UnicodeUTF8)) self.action_Nuevo.setText (QtGui.QApplication.translate" "" MainWindow " , Nėra, QtGui.QApplication.UnicodeUTF8)) self.action_Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText) .translate ("MainWindow", "& Open", "QtGui. QApplication.UnicodeUTF8)) self.action_Save.setText (QtGui.QApplication.translate ("MainWindow", "& Save", Nėra, QtGui.QApplication.UnicodeUTF8)) self.actionSave_As.setText (QtGui.QApplication.translate ("MainWindow", "Save & As", None, QtGui.QApplication.UnicodeUTF8))) self.action_Quit.QT self.translate ") MainWindow", "& Exit", Nėra, QtGui.QApplication.UnicodeUTF8)) self.actionA_bout.setText (QtGui.QApplication.translate ("MainWindow", "To & near", Nėra, QtGui.QApplication. UnicodeUTFelp8)) self.action_HnicodeUTFelp8)). SetText (QtGui.QApplication.translate ("MainWindow", "& Technical Support", None, QtGui.QApplication.UnicodeUTF8)) 
Toliau turėsime užprogramuoti kodą, kad jis suteiktų funkcionalumo redaktoriui, parodydamas kiekvieną meniu ir tekstūrą, kodas yra gana platus, čia mes kuriame tik sąsajos dizainą ir jo konvertavimą …
Sukūrus grafinę vartotojo sąsają su „Qt Designer“, lengviau projektuojamos programos, be to, tai puiki mokymosi priemonė, nes kodas priklausys nuo mūsų.
„Qt Designer“ leidžia pamatyti kiekvieno komponento savybes prieš jį išverčiant, programavimas taip pat gali būti atliekamas be grafinės sąsajos tiesiogiai bet kuriame teksto redaktoriuje, jei žinome būtinas bibliotekas ir jų savybes.
„Python“ taip pat gali tvarkyti programas, kurios jungiasi prie duomenų bazių, tokių kaip „Mysql“ ar „Sqlite“, per ryšį ir operacijas duomenų bazėse su „Python“, taip pat galime pridėti vaizdinę sąsają prie savo programos, sukurtos naudojant grafines bibliotekas Qt naudojant PyQt. Mes toliau žengsime į priekį programuodami grafines sąsajas vartotojams, turintiems „Python“ kitoje pamokoje.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave