Aplikacije za više platformi s Python, PyQT i QT Desginer 5

Sadržaj
Python je programski jezik na koje se karakteristično kao multiparadigma kao omogućuje programiranje s objektno orijentiranom i funkcionalnom paradigmom, ima standardiziranu knjižnicu.
Postoji mnogo Pythonovih alata i knjižnica za razvoj softvera i web aplikacija, u slučaju dizajna zaslona možemo koristiti različite knjižnice poput wxPython, PyQt, PySide ili PyGTK za crtanje našeg sučelja, a zatim i programa, postoje i web okviri poput Djanga, u ovom ćemo vodiču vidjeti kako stvoriti desktop platforme za više platformi pomoću PyQT 5.

PyQt5 je Knjižnica alata Python za njega QT5 okvir. Dostupan je za Python 3.x.
PyQt5 je implementiran kao skup Python modula. Omogućuje nam povezivanje dizajna koje izrađujemo s QT Designer -om, a zatim ih možemo prevesti s Py Qt -om tako da se mogu izvršavati pod Pythonom u svim operativnim sustavima kao što su Linux Windows i Mac OS.
Da bismo razvijali aplikacije, moramo instalirati potrebne programe i ovisnosti.Ovaj vodič će koristiti verziju Linux Mint -a kao operativni sustav, ali se može prilagoditi bilo kojem operativnom sustavu.
U drugim vodičima koristimo Qt za programiranje na C ++, Multiplatform programiranje na C ++ i Qt u GNU / Linux okruženju i QT programiranje i SQLite baze podataka.
Prvo instalirajmo QT Designer 5, iz prozora terminala preuzimamo ga i instaliramo
 $ 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
Zatim moramo instalirati razvojne knjižnice Python:
 sudo apt-get install pyqt5-dev-tools
Zatim moramo instalirati Python ekstenziju zvanu SIP koja je generator koda koji je posebno dizajniran za stvaranje Python koda. To će omogućiti čitanje dizajnerske datoteke Qt Designer i prevođenje u Python kod. Generirani kod može se sastaviti za Python v2 i v3.
SIP preuzimamo sa službene web stranice, zatim idemo u mapu u kojoj smo ga preuzeli, raspakiramo datoteku sip-4.17.tar.gz, pristupamo mapi i konfiguriramo SIP te instaliramo sa sljedećim kodom iz prozora terminala.
 python configure.py make make install
Postavili smo QT5 kao zadanu verziju:
 sudo apt-get install qt5-default
Na kraju preuzimamo i instaliramo PyQt koje su biblioteke koje ćemo trebati povezati Python i QT Designer
Preuzmite PyQt sa njegove službene web stranice, zatim idemo u mapu u koju smo ga preuzeli, raspakirajte datoteku PyQt i pristupite mapi i konfigurirajte je sa sljedećim kodom iz prozora terminala.
 python configure.py
Napravit ćemo jednostavnu aplikaciju od Qt dizajnera. Dizajn ćemo izraditi preuzimanjem obrasca, zanimati će nas samo datoteka s nastavkom korisničkog sučelja koja će biti sučelje za dizajn. Naš projekt se zove Dialoga.

Zatim ćemo odabrati vrstu prozora koju će koristiti naša aplikacija, u ovom slučaju kao predložak koristit ćemo dijalog s dva gumba.

Tada ćemo imati zaslon s našim prozorom za oblikovanje, dodamo TextEdit i spremamo datoteku

Zatim idemo u mapu projects, bit će generirane i odgovarajuće c ++ datoteke, ali koristit ćemo samo ui datoteku.
Zatim ćemo s terminala morati prevesti datoteku dialoga.ui u python, iz prozora terminala koristimo sljedeću naredbu:
 pyuic5 -o dialoga.py dialoga.ui

Ovo generira datoteku dialog.py koja je dizajn koji smo imali u c ++ sada dostupan u Pythonu, kôd je sljedeći
 # - * - kodiranje: utf -8 - * - # Implementacija obrasca generirana čitanjem korisničke datoteke 'dialoga.ui' # # Stvoreno: pon 26. listopada 21:31:56 2015 # od: PyQt5 Generator korisničkog sučelja 5.2.1 iz PyQt5 uvoz QtCore, QtGui, QtWidgets klasa Ui_DialogA (objekt): def setupUi (self, DialogA): DialogA.setObjectName ("DialogA") DialogA.resize (400, 300) self.buttonBox = QtWidgets.QDialogButtonBox (DialogA) DialogA) self. SetGeometry (QtCore.QRect (30, 240, 341, 32)) self.buttonBox.setOrientation (QtCore.Qt.Horizontal) . ("buttonBox") self.textEdit = QtWidgets.QTextEdit (DialogA) self.textEdit.setGeometry (QtCore.QRect (20, 20, 361, 201)) self.textEdit.setObjectName ("textEdit") self.retranslateUi (DialogAlog ) self.buttonBox.accepted.connect (DialogA.accept) self.buttonBox.rejected.connect (DialogA.reject) QtCore.QMetaObject.connectSlotsByName (DialogA) def retranslateUi (self, DialogA): _TranslateQt plication.translate DialogA.setWindowTitle (_translate ("DialogA", "Dialog"))
Ovo je sve što dizajniramo u Qt Designer -u, sada ga moramo povezati s kodom koji ga koristi, za to ćemo stvoriti datoteku startup.py i napisati sljedeći kod:
 import sys iz PyQt5.QtWidgets uvoz QApplication, QDialog iz dijaloga import * app = QApplication (sys.argv) window = QDialog () ui = Ui_DialogA () ui.setupUi (window) window.show () sys.exit (app.exec_ ())
Vidimo da uvozimo knjižnice grafičkog prikaza i uvozimo dijaloški okvir datoteke s dizajnom.
Zatim označavamo da će prozor biti dijalog, ui prozor će imati dizajn definiran u klasi Ui_DialogA () definiranoj u datoteci dizajna i na kraju taj dizajn se dodjeljuje prozoru kroz funkciju setupUi.
Spremamo i izvršavamo iz naredbenog prozora na sljedeći način:
 python3 home.py

U nastavku ćemo stvoriti jednostavan, ali funkcionalan uređivač teksta. Izradit ćemo novi projekt za koji smo zainteresirani za stvaranje grafičkih sučelja. Projekt ćemo nazvati MyEditor.

Zatim odabiremo MainWindow kao predložak. U dizajnu možemo imati jelovnik i tekstualnu poruku. Ovdje će biti važno svakom objektu dati naziv kako bi se kasnije mogao identificirati i pozvati na njega iz Python koda. Zatim ga spremimo i pretvorimo ui datoteku u python.
Pretvorbu vršimo iz prozora terminala sljedećom naredbom:
 pyuic5 -o mieditor.py mieditor.ui
Kod dizajna u pythonu bit će sljedeći:
 # - * - kodiranje: utf -8 - * - # Implementacija obrasca generirana čitanjem datoteke korisničkog sučelja '/testqt/mieditor.ui' # # Kreirano: pon 26. listopada 10:32:56 2015 # od: PyQt5 UI generator koda 5.2. 1 # # UPOZORENJE! Sve promjene napravljene u ovoj datoteci bit će izgubljene! iz PyQt5 uvezite QtCore, QMainWindow, QApplication, QtGui, QtWidgets klasu Ui_MainWindow (objekt): def setupUi (self, MainWindow): MainWindow.setObjectName ("MainWindow") MainWindow.resize (533, 317) self.centralwiget (Q3). Glavni prozor) self.centralwidget.setObjectName ("centralni widget") self.gridLayout = QtGui.QGridLayout (self.centralwidget) self.gridLayout.setObjectName ("gridLayout") self.textEdit = QtGui.QTextExtrekt (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 (Glavni prozor) self.menubar.setGeometry (QtCore. QRect (0, 0, 533, 25)) self.menubar.setObjectName ("menubar") self.menu_File = QtGui.QMenu (self.menibar) self. menu_File.setObjectName ("menu_File") self.menu_Help = QtGui.QMenu (self.menubar) self.menu_Help.setObjectName ("menu_Help") MainWindow.setMenuBar (traka sa samim izbornikom) self.statusbar = QtGui.QStab statusbar.setObjectNam e ("statusna traka") MainWindow.setStatusBar (self.statusbar) self.action_New = QtGui.QAction (MainWindow) self.action_Nuevo.setObjectName ("action_New") self.action_Open = QtGui.QAction (Main_meniWNakcija) self.action self.action_bjectName (SetObjectName) "action_Abrir") self.action_Save = QtGui.QAction (MainWindow) self.action_Save.setObjectName ("action_Save") self.actionSave_As = QtGui.QAveAc_ActionAction 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_Hp action_Help (Glavni prozor) 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_Save) self.menu_File.ad ) 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 (Glavni prozor) QtCore.QObject.connect (self.action_Quit, QtCore.SIGNAL (QtCore.SIGNAL self.action_Quit, QtCore.SIGNAL ("pokrenut ()"), MainWindow.close) QtCore.QMetaObject.connectSlotsByName (MainWindow) def retranslateUi (self, MainWindow): MainWindow.setWindowTitle (QtGui.QApplication, MiEditor ", Ništa, QApplicationGui", Ništa, QApplicationGui ".UnicodeUTF8)) self.menu_File.setTitle (QtGui.QApplication.translate (" Glavni prozor "," & Datoteka ", Ništa, QtGui.QApplication.UnicodeUTFH_p)). Self.menu setTitle ("QtGui.QApplication.translate", "QtGui.QApplication.translate" & Help ", Ništa, QtGui.QApplication.UnicodeUTF8)) self.action_Nuevo.setText (QtGui.QApplication.translate (" & NewWindow ", , Ništa, QtGui.QApplication.UnicodeUTF8)) self.action_Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText). QApplication.UnicodeUTF8)) self.action_Save.setText (QtGui.QApplication.translate ("Glavni prozor", "& Spremi", Ništa, QtGui.QApplication.UnicodeUTF8)) self.actionSave_As.setText (QtGui.QApplication.translate ("Glavni prozor", "Spremi & kao", Ništa, QtGui.QApplication.UnicodeUTF8))) self.action_Quit.setTixt " self.translate ") MainWindow", "& Exit", None, QtGui.QApplication.UnicodeUTF8)) self.actionA_bout.setText (QtGui.QApplication.translate ("MainWindow", "Za & blizu", Ništa, QtGui.QApplication. UnicodeUTFelp8)) self.action_HnicodeUTFelp8)). SetText (QtGui.QApplication.translate ("Glavni prozor", "& Tehnička podrška", Ništa, QtGui.QApplication.UnicodeUTF8)) 
Zatim ćemo morati programirati kôd kako bismo uredniku dali funkcionalnost, instancirajući svaki izbornik i tekstualno područje kod je prilično opsežan, ovdje razvijamo samo dizajn sučelja i njegovu pretvorbu …
Izrada grafičkog korisničkog sučelja s Qt Designer -om olakšava dizajn aplikacija, a također je i izvrstan alat za učenje budući da će kôd ovisiti o nama.
Qt Designer omogućuje vam da vidite svojstva svake komponente prije nego što je prevedete, programiranje se može obaviti i bez grafičkog sučelja izravno u bilo kojem uređivaču teksta ako poznajemo potrebne knjižnice i njihova svojstva.
Python također može rukovati aplikacijama koje se povezuju s bazama podataka kao što su Mysql ili Sqlite, putem veze i operacijama na bazama podataka s Pythonom, a našoj aplikaciji možemo dodati i vizualno sučelje stvoreno s grafičkim knjižnicama Qt koristeći PyQt. Napredovat ćemo dalje s programiranjem grafičkih sučelja za korisnike s Python u drugom vodiču.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave