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 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.runZatim moramo instalirati razvojne knjižnice Python:
sudo apt-get install pyqt5-dev-toolsZatim 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 installPostavili smo QT5 kao zadanu verziju:
sudo apt-get install qt5-defaultNa 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.pyNapravit ć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 s terminala morati prevesti datoteku dialoga.ui u python, iz prozora terminala koristimo sljedeću naredbu:
pyuic5 -o dialoga.py dialoga.ui
# - * - 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
Pretvorbu vršimo iz prozora terminala sljedećom naredbom:
pyuic5 -o mieditor.py mieditor.uiKod 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