Vairāku platformu lietojumprogrammas ar Python, PyQT un QT Desginer 5

Satura rādītājs
Python ir programmēšanas valoda uz kuru raksturīga daudzparadigmaļauj programmēt ar objektorientētu un funkcionālu paradigmu, ir standartizēta bibliotēka.
Programmatūras un tīmekļa lietojumprogrammu izstrādei ir daudz Python rīku un bibliotēku, ekrāna dizaina gadījumā mēs varam izmantot dažādas bibliotēkas, piemēram, wxPython, PyQt, PySide vai PyGTK lai uzzīmētu mūsu saskarni un pēc tam programmu, ir arī tādi tīmekļa ietvari kā Django, šajā apmācībā mēs redzēsim, kā izveidot starpplatformu darbvirsmas lietojumprogrammas, izmantojot PyQT 5.

PyQt5 ir Python rīku bibliotēka viņam QT5 ietvars. Tas ir pieejams Python 3.x.
PyQt5 tiek ieviests kā Python moduļu komplekts. Tas ļauj mums saistīt mūsu veidotos dizainus ar QT Designer un pēc tam tos tulkot ar Py Qt, lai tie būtu izpildāmi Python visās operētājsistēmās, piemēram, Linux Windows un Mac OS.
Lai izstrādātu lietojumprogrammas, mums jāinstalē nepieciešamās programmas un atkarības.Šajā apmācībā kā operētājsistēma tiks izmantota Linux Mint versija, taču to var pielāgot jebkurai operētājsistēmai.
Citās apmācībās mēs izmantojam Qt programmēšanai C ++, daudzplatformu programmēšanai C ++ un Qt GNU / Linux vidē un QT programmēšanai un SQLite datu bāzēm.
Vispirms instalēsim QT Designer 5, no termināļa loga mēs to lejupielādēsim un instalēsim
 $ 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
Tālāk mums jāinstalē Python izstrādes bibliotēkas:
 sudo apt-get install pyqt5-dev-tools
Tālāk mums jāinstalē Python paplašinājums ar nosaukumu SIP, kas ir koda ģenerators, kas īpaši paredzēts Python koda izveidei. Tas ļaus Qt Designer dizaina failu nolasīt un pārtulkot Python kodā. Ģenerēto kodu var apkopot Python v2 un v3.
Mēs lejupielādējam SIP no oficiālās vietnes, pēc tam dodamies uz mapi, kurā mēs to lejupielādējām, izpakojam failu sip-4.17.tar.gz, piekļūstam mapei un konfigurējam SIP un instalējam ar šādu kodu no termināļa loga.
 python configure.py make make install
Mēs iestatījām QT5 kā noklusējuma versiju:
 sudo apt-get install qt5-default
Visbeidzot, mēs lejupielādējam un instalējam PyQt, kas ir bibliotēkas, kas mums būs jāsaista ar Python un QT Designer
Lejupielādējiet PyQt no tās oficiālās vietnes, tad mēs ejam uz mapi, kurā mēs to lejupielādējām, izpakojam PyQt failu un piekļūstam mapei un konfigurējam to ar šādu kodu no termināļa loga.
 python configure.py
Mēs izveidosim vienkāršu lietojumprogrammu no Qt dizainera, mēs izveidosim dizainu, aizpildot veidlapu, mūs interesēs tikai fails ar lietotāja interfeisa paplašinājumu, kas būs dizaina saskarne. Mūsu projekta nosaukums ir Dialoga.

Tālāk mēs atlasīsim loga veidu, kuru izmantos mūsu lietojumprogramma, šajā gadījumā kā veidni izmantosim dialoglodziņu ar divām pogām.

Tad mums būs jāveido ekrāns ar mūsu logu, mēs pievienojam TextEdit un saglabājam failu

Pēc tam mēs ejam uz projektu mapi, tiks izveidoti arī atbilstošie c ++ faili, bet mēs izmantosim tikai ui failu.
Tālāk no termināļa mums būs jātulko fails dialoga.ui python, no termināļa loga mēs izmantojam šādu komandu:
 pyuic5 -o dialoga.py dialoga.ui

Tas ģenerē failu dialog.py, kas ir dizains, kas mums bija pieejams programmā c ++, tagad pieejams Python, kods ir šāds
 # - * - kodēšana: utf -8 - * - # Veidlapas ieviešana, kas ģenerēta, lasot ui failu 'dialoga.ui' # # Izveidots: Pirmd. 26. oktobris 21:31:56 2015 # autors: PyQt5 UI kodu ģenerators 5.2.1 no PyQt5 importēt QtCore, QtGui, QtWidgets klasi Ui_DialogA (objekts): 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.QDialogButtonButtonButtonButton.ButtonButton.ButtonButton.ButtonButton.Banet . ("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"))
Tas ir viss, ko mēs izstrādājam programmā Qt Designer, tagad mums tas ir jāsaista ar kodu, kas to izmanto, šim nolūkam mēs izveidosim failu startup.py un uzrakstīsim šādu kodu:
 importēt sistēmu no PyQt5.QtWidgets importēt QApplication, QDialog no dialoga importēt * app = QApplication (sys.argv) logs = QDialog () ui = Ui_DialogA () ui.setupUi (logs) window.show () sys.exit (app.exec_ ())
Mēs redzam, ka mēs importējam grafisko displeju bibliotēkas un importējam failu dialoglodziņu ar dizainu.
Tad mēs norādām, ka logs būs dialoglodziņš, ui logam būs dizains, kas definēts Ui_DialogA () klasē, kas definēta dizaina failā, un visbeidzot, šis dizains tiek piešķirts logam, izmantojot funkciju setupUi.
Mēs saglabājam un izpildām komandu logā šādi:
 python3 home.py

Tālāk mēs izveidosim vienkāršu, bet funkcionālu teksta redaktoru. Mēs izveidosim jaunu projektu, kurā esam ieinteresēti izveidot grafiskās saskarnes. Projektu sauksim par MyEditor.

Pēc tam mēs izvēlamies MainWindow kā veidni. Dizainā mums var būt izvēlne un teksta rediģēšana. Šeit būs svarīgi katram objektam piešķirt nosaukumu, lai to vēlāk varētu identificēt un atsaukties uz to no Python koda. Tad mēs to saglabājam un konvertējam ui failu uz python.
Mēs veicam konvertēšanu no termināļa loga ar šādu komandu:
 pyuic5 -o mieditor.py mieditor.ui
Python dizaina kods būs šāds:
 # - * - kodēšana: utf -8 - * - # Veidlapas ieviešana, kas ģenerēta, lasot ui failu '/testqt/mieditor.ui' # # Izveidots: Mon Oct 26 10:32:56 2015 # by: PyQt5 UI code generator 5.2. 1 # # BRĪDINĀJUMS! Visas šajā failā veiktās izmaiņas tiks zaudētas! no PyQt5 importēt QtCore, QMainWindow, QApplication, QtGui, QtWidgets klase Ui_MainWindow (objekts): 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 (red.). (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.Matus statusbar.setObjectNam e ("statusa josla") 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 = Apt. 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.index.html) MiEditor ", Nav, QApplicationGui", Nav, QApplicationGui ".UnicodeUTF8)) self.menu_File.setTitle (QtGui.QApplication.translate (" MainWindow "," & File ", Nav, QtGui.QApplication.Unicut.UnicUT. setTitle ("QtGui.QApplication.translate", "QtGui.QApplication.translate" un palīdzība ", nav, QtGui.QApplication.UnicodeUTF8)) self.action_Nuevo.setText (QtGui.QApplication.translate" "" MainWindow " , Nav, QtGui.QApplication.UnicodeUTF8)) self.action_Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText) .translate ("MainWindow", "& Open", None, QApplication.UnicodeUTF8)) self.action_Save.setText (QtGui.QApplication.translate ("MainWindow", "& Save", nav, QtGui.QApplication.UnicodeUTF8)) self.actionSave_As.setText (QtGui.QApplication.translate ("MainWindow", "Save & As", None, QtGui.QApplication.UnicodeUTF8))) self.action_Quit. self.translate ") MainWindow", "& Exit", Nav, QtGui.QApplication.UnicodeUTF8)) self.actionA_bout.setText (QtGui.QApplication.translate ("MainWindow", "Uz & tuvu", Nav, QtGui.QApplication. UnicodeUTFelp8)) self.action_HnicodeUTFelp8)). SetText (QtGui.QApplication.translate ("MainWindow", "& Tehniskais atbalsts", Nav, QtGui.QApplication.UnicodeUTF8)) 
Tālāk mums būs jāprogrammē kods, lai redaktoram piešķirtu funkcionalitāti, parādot katru izvēlni un teksta apgabalu, kods ir diezgan plašs, šeit mēs izstrādājam tikai saskarnes dizainu un tā pārveidošanu …
Grafiskā lietotāja interfeisa izveide ar Qt Designer atvieglo lietojumprogrammu izstrādi, un tas ir arī lielisks mācību līdzeklis, jo kods būs atkarīgs no mums.
Qt Designer ļauj redzēt katra komponenta īpašības pirms tā tulkošanas, programmēšanu var veikt arī bez grafiskā interfeisa tieši jebkurā teksta redaktorā, ja zinām nepieciešamās bibliotēkas un to īpašības.
Python var arī apstrādāt lietojumprogrammas, kas savienojas ar tādām datu bāzēm kā Mysql vai Sqlite, izmantojot savienojumu un darbības datubāzēs ar Python, mēs varam arī pievienot vizuālu saskarni savai lietojumprogrammai, kas izveidota, izmantojot grafiskās bibliotēkas Qt, izmantojot PyQt. Mēs virzīsimies tālāk ar grafisko saskarņu programmēšanu lietotājiem ar Python citā apmācībā.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave