Aplikacje wieloplatformowe z Python, PyQT i QT Desginer 5

Spisie treści
Python to język programowania do którego cecha bycia wieloparadygmatem NS umożliwia programowanie z paradygmatem obiektowym i funkcjonalnym, posiada ustandaryzowaną bibliotekę.
Istnieje wiele narzędzi i bibliotek Pythona do tworzenia oprogramowania i aplikacji internetowych, w przypadku projektowania ekranów możemy skorzystać z różnych bibliotek, takich jak wxPython, PyQt, PySide lub PyGTK aby narysować nasz interfejs, a następnie program, istnieją również frameworki internetowe, takie jak Django, w tym samouczku zobaczymy, jak tworzyć wieloplatformowe aplikacje desktopowe za pomocą PyQT 5.

PyQt5 jest Biblioteka narzędzi Pythona dla niego Ramy QT5. Jest dostępny dla Pythona 3.x.
PyQt5 jest zaimplementowany jako zestaw modułów Pythona. Pozwala nam łączyć projekty, które tworzymy za pomocą QT Designer, a następnie tłumaczyć je za pomocą Py Qt, aby były wykonywalne pod Pythonem we wszystkich systemach operacyjnych, takich jak Linux Windows i Mac OS.
Aby tworzyć aplikacje, musimy zainstalować niezbędne programy i zależności.W tym samouczku zostanie użyta wersja Linux Mint jako system operacyjny, ale można go dostosować do dowolnego systemu operacyjnego.
W innych tutorialach używamy Qt do programowania w C++, Multiplatform Programming w C++ i Qt w GNU/Linux Environment oraz QT Programming and SQLite databases.
Najpierw zainstalujmy QT Designer 5, z okna terminala pobieramy i instalujemy
 $ 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
Następnie musimy zainstalować biblioteki programistyczne Pythona:
 sudo apt-get install pyqt5-dev-tools
Następnie musimy zainstalować rozszerzenie Pythona o nazwie SIP, które jest generatorem kodu zaprojektowanym specjalnie do tworzenia kodu w Pythonie. Umożliwi to odczytanie i przetłumaczenie pliku projektowego Qt Designer na kod Pythona. Wygenerowany kod można skompilować dla Pythona v2 i v3.
Pobieramy SIP z oficjalnej strony internetowej, następnie przechodzimy do folderu, w którym go pobraliśmy, rozpakowujemy plik sip-4.17.tar.gz, uzyskujemy dostęp do folderu i konfigurujemy SIP i instalujemy z następującym kodem z okna terminala.
 python configure.py make make install
Ustawiamy QT5 jako wersję domyślną:
 sudo apt-get zainstaluj qt5-default
Na koniec pobieramy i instalujemy PyQt, czyli biblioteki, których będziemy potrzebować do połączenia Pythona i QT Designer
Pobierz PyQt z jego oficjalnej strony internetowej, a następnie przejdź do folderu, w którym go pobraliśmy, rozpakuj plik PyQt i uzyskaj dostęp do folderu i skonfiguruj go za pomocą następującego kodu z okna terminala.
 python configure.py
Zamierzamy stworzyć prostą aplikację od Qt designera zrobimy projekt za pomocą formularza, zainteresuje nas tylko plik z rozszerzeniem ui, który będzie interfejsem projektowym. Nasz projekt nazywa się Dialoga.

Następnie wybierzemy typ okna, z którego będzie korzystała nasza aplikacja, w tym przypadku jako szablon użyjemy okna dialogowego z dwoma przyciskami.

Następnie mamy ekran z naszym oknem do zaprojektowania, dodajemy TextEdit i zapisujemy plik

Następnie przechodzimy do folderu projektów, odpowiednie pliki c++ również zostaną wygenerowane, ale użyjemy tylko pliku ui.
Następnie z terminala będziemy musieli przetłumaczyć plik dialoga.ui na pythona, z okna terminala użyjemy następującego polecenia:
 pyuic5 -o dialoga.py dialoga.ui

Spowoduje to wygenerowanie pliku dialog.py, który jest projektem, który mieliśmy w c ++, teraz dostępnym w Pythonie, kod jest następujący
 # - * - kodowanie: utf-8 - * - # Implementacja formularza wygenerowana z odczytanego pliku 'dialoga.ui' # # Utworzono: Mon Oct 26 21:31:56 2015 # by: PyQt5 Generator kodu interfejsu użytkownika 5.2.1 z PyQt5 import klasy QtCore, QtGui, QtWidgets Ui_DialogA (obiekt): def setupUi (self, DialogA): DialogA.setObjectName ("DialogA") DialogA.resize (400, 300) self.buttonBox = QtWidgets.QDialogButtonBox (DialogA) self.buttonBox ( Okno dialogowe A) self.setGeometry (QtCore.QRect (30, 240, 341, 32)) self.buttonBox.setOrientation (QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons (QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogtonBset.QsetObuttonlogButtonObuttonOset ("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.rejected.connect (DialogA.reject) QtCore.QMetaObject.connectSlotsByName (DialogA) def retranslateUi (self, DialogA): _translate = QtCore.QCoreAp plication.translate DialogA.setWindowTitle (_translate ("DialogA", "Dialog"))
To wszystko, co projektujemy w Qt Designer, teraz musimy połączyć to z kodem, który go używa, w tym celu utworzymy plik startup.py i napiszemy następujący kod:
 import sys z PyQt5.QtWidgets import QApplication, QDialog z dialoga import * app = QApplication (sys.argv) window = QDialog () ui = Ui_DialogA () ui.setupUi (okno) window.show () sys.exit (app.exec_ ())
Widzimy, że importujemy biblioteki wyświetlania grafiki i importujemy okno dialogowe pliku z projektem.
Następnie wskazujemy, że okno będzie oknem dialogowym, okno interfejsu użytkownika będzie miało projekt zdefiniowany w klasie Ui_DialogA() zdefiniowany w pliku projektu, a na koniec ten projekt zostanie przypisany do okna za pomocą funkcji setupUi.
Zapisujemy i wykonujemy z okna poleceń w następujący sposób:
 python3 home.py

Poniżej stworzymy prosty, ale funkcjonalny edytor tekstu. Stworzymy nowy projekt, w którym będziemy zainteresowani tworzeniem interfejsów graficznych. Nazwiemy projekt MyEditor.

Następnie wybieramy MainWindow jako szablon. W projekcie możemy mieć menu i tekst. Tutaj ważne będzie nadanie każdemu obiektowi nazwy, aby można było go później zidentyfikować i odwoływać się do niego w kodzie Pythona. Następnie zapisujemy go i konwertujemy plik ui do Pythona.
Konwersję wykonujemy z okna terminala za pomocą następującego polecenia:
 pyuic5 -o mieditor.py mieditor.ui
Kod projektu w Pythonie będzie następujący:
 # - * - kodowanie: utf-8 - * - # Implementacja formularza wygenerowana z odczytanego pliku ui '/testqt/mieditor.ui' # # Utworzono: Mon Oct 26 10:32:56 2015 # by: PyQt5 Generator kodu interfejsu użytkownika 5.2. 1 # # UWAGA! Wszystkie zmiany wprowadzone w tym pliku zostaną utracone! z PyQt5 importuj klasę QtCore, QMainWindow, QApplication, QtGui, QtWidgets Ui_MainWindow (obiekt): def setupUi (self, MainWindow): MainWindow.setObjectName ("MainWindow") MainWindow.resize (533, 317) self QtGuwidi. MainWindow) self.centralwidget.setObjectName („centralwidget”) self.gridLayout = QtGui.QGridLayout (self.centralwidget) self.gridLayout.setObjectName („gridLayout”) self.textEdit = QtGui.QTextEdit (self.centraldit.) Self.textEdit (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 (Okno główne) self.menubar.setGeometry (QtCore. QRect (0, 0, 533, 25)) self.menubar.setObjectName ("pasek menu") self.menu_File = QtGui.QMenu (self.menubar) self. menu_File.setObjectName ("menu_Help") self.menu_Help = QtGui.QMenu (self.menubar) self.menu_Help.setObjectName ("menu_Help") MainWindow.setMenuBar (self.menubar) self.statusbar = QtGui.QStatusBar (MainWindow) self. 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_bindowName (MainWindow) (MainWindow) self.action_bjectName (SetObjectName) "action_Abrir") self.action_Save = QtGui.QAction (GłówneOkno) self.action_Save.setObjectName ("action_Save") self.actionSave_As = QtGui.QAction (GłówneOkno) self.actionSave_As"actionsetS. self.action_Quit. QAction (MainWindow) self.action_Quit.setObjectName ("action_Quit") self.actionA_bout = QtGui.QAction (Główne Okno) self.actionA_bout.setObjectName ("actionA_bout") self.action_Help = QtGui.Qindow (QtGui.Qindow) 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_Save) self.menu_File.addAction (self.menu ) 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.SIGNAL () self.action_Quit, QtCore.SIGNAL ( "wyzwolone ()"), MainWindow.close) QtCore.QMetaObject.connectSlotsByName (MainWindow) def retranslateUi (self, MainWindow): MainWindow.setWindowTitle (QtGui.Q ""MainWtranslate" MiEditor", Brak, QApplicationGui", Brak, QApplicationGui" .UnicodeUTF8)) self.menu_File.setTitle (QtGui.QApplication.translate ("MainWindow", "& Plik", Brak, QtGui.QApplication.UnicodeUTF8)) self.menu_Help. setTitle ("QtGui.QApplication.translate", "QtGui.QApplication.translate" & Help ", Brak, QtGui.QApplication.UnicodeUTF8)) self.action_Nuevo.setText (QtGui.QApplication.translate (" MainWindow "," & New " , Brak, QtGui.QApplication.UnicodeUTF8)) self.action_Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText)) .translate ("MainWindow", "& Otwórz", Brak, QtGui. QApplication.UnicodeUTF8)) self.action_Save.setText (QtGui.QApplication.translate ("MainWindow", "& Zapisz", Brak, QtGui.QApplication.UnicodeUTF8)) self.actionSave_As.setText (QtGui.QApplication.translate („Okno główne”, „Zapisz i jako”, Brak, QtGui.QApplication.UnicodeUTF8))) self.action_Quit.setText (QtGui.QApplication (" self.translate") MainWindow "," & Exit ", Brak, QtGui.QApplication.UnicodeUTF8)) self.actionA_bout.setText (QtGui.QApplication.translate (" MainWindow "," To & near ", Brak, QtGui.QApplication. UnicodeUTFelp8)) self.action_HnicodeUTFelp8)).setText (QtGui.QApplication.translate ("MainWindow", "& Pomoc techniczna", Brak, QtGui.QApplication.UnicodeUTF8)) 
Następnie będziemy musieli zaprogramować kod, aby nadać funkcjonalność edytorowi, tworząc instancje każdego menu i obszaru tekstowego kod jest dość obszerny, tutaj rozwijamy tylko projekt interfejsu i jego konwersję …
Stworzenie graficznego interfejsu użytkownika za pomocą Qt Designera ułatwia projektowanie aplikacji, a także jest doskonałym narzędziem do nauki, ponieważ kod będzie zależał od nas.
Qt Designer pozwala zobaczyć właściwości każdego komponentu przed jego tłumaczeniem, programowanie można również wykonać bez interfejsu graficznego bezpośrednio w dowolnym edytorze tekstu, jeśli znamy potrzebne biblioteki i ich właściwości.
Python może również obsługiwać aplikacje, które łączą się z bazami danych takimi jak Mysql czy Sqlite, poprzez połączenie i operacje na bazach danych z Pythonem, możemy również dodać interfejs wizualny do naszej aplikacji stworzonej za pomocą bibliotek graficznych Qt przy użyciu PyQt. Będziemy dalej rozwijać programowanie interfejsów graficznych dla użytkowników z Python w innym samouczku.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave