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 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.runNastępnie musimy zainstalować biblioteki programistyczne Pythona:
sudo apt-get install pyqt5-dev-toolsNastę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 installUstawiamy QT5 jako wersję domyślną:
sudo apt-get zainstaluj qt5-defaultNa 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.pyZamierzamy 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 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
# - * - 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
Konwersję wykonujemy z okna terminala za pomocą następującego polecenia:
pyuic5 -o mieditor.py mieditor.uiKod 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