Pythona | Wprowadzenie do PyQt5

Pythona | Wprowadzenie do PyQt5

Python oferuje wiele opcji tworzenia aplikacji GUI, a PyQt5 jest jedną z nich. PyQt5 to wieloplatformowy zestaw narzędzi GUI, zestaw powiązań Pythona dla Qt v5. Dzięki narzędziom i prostocie zapewnianej przez tę bibliotekę można z łatwością stworzyć interaktywną aplikację komputerową. Aplikacja GUI składa się z Front-endu i Back-endu. PyQt5 udostępniło narzędzie o nazwie „QtDesigner” do projektowania frontonu metodą „przeciągnij i upuść”, dzięki czemu rozwój może stać się szybszy i można poświęcić więcej czasu na sprawy związane z backendem. Instalacja: Najpierw musimy zainstalować bibliotekę PyQt5. W tym celu wpisz następujące polecenie w terminalu lub w wierszu poleceń:

pip install pyqt5 

Jeśli instalacja przebiegła pomyślnie, można to sprawdzić, uruchamiając kod:

>>>importuj PyQt5 

PyQt5 zapewnia wiele narzędzi, a QtDesigner jest jednym z nich. W tym celu uruchom to polecenie:

pip install PyQt5-tools 

Stwórz swoją pierwszą aplikację –

Jest to prosta aplikacja posiadająca jeden przycisk w oknie. Po kliknięciu tego przycisku pojawi się komunikat Kliknąłeś mnie. Zaczynajmy .

  • Przede wszystkim musimy znaleźć QtDesigner aby utworzyć część czołową. – QtDesigner jest obecny w „site-packages/pyqt5_tools” – Aby znaleźć lokalizację pakietów site, napisz następujący kod Pythona za pomocą dowolnego wybranego edytora, a następnie uruchom:
>>> importuj witrynę>>> site.getsitepackages() 
  • – Uruchom aplikację o nazwie „projektant”.
  • Otworzy się okno jak pokazano na rysunku: wybierz opcję „Dialog bez przycisku” i kliknij „Utwórz”
  • Po lewej stronie projektanta znajdują się różne widżety, które można przeciągać i upuszczać w naszym oknie zgodnie z naszymi wymaganiami.
  • Znajdź i przeciągnij i upuść „Przycisk” i „Etykietę”.
  • Zmień tekst wewnątrz widżetów, klikając go prawym przyciskiem myszy i wybierając „Zmień zwykły tekst”. Pozostaw tekst etykiety pusty.
  • Stworzyliśmy nasz układ front-end, po prostu zapisz go w wybranej lokalizacji. Pamiętaj, że ten plik będzie miał rozszerzenie .ui.
  • Musimy przekonwertować plik .ui na plik .py, aby uzyskać widżety w formie Pythona i dołączyć do nich niezbędne detektory zdarzeń.

Konwersja pliku .ui do pliku .py:

  • W tym celu musimy przejść do katalogu sitepackages w terminalu lub wierszu poleceń i uruchomić polecenie, jak pokazano poniżej. Pobieranie lokalizacji pakietów witryn zostało wspomniane wcześniej.

>>> cd C:Users……ProgramsPythonPython36-32libsite-packages [Lokalizacja pakietów witryn]>>> pyuic5 C:Users……NAZWA PLIKU .ui[Dokładna lokalizacja pliku .ui] -o C:Users…….NAZWA PLIKU.py [Lokalizacja, w której chcesz umieścić plik .py]

  • Na koniec dodamy sygnały i slot w kodzie Pythona, aby był w pełni funkcjonalny.
widget.signal.connect(slot) 
  • A sygnał jest emitowany przez widżety po wystąpieniu określonego rodzaju zdarzenia, takiego jak kliknięcie, podwójne kliknięcie itp. A otwór jest dowolną wywoływalną funkcją, która wykona jakąś akcję po wystąpieniu zdarzenia.
  • Uruchom aplikację i kliknij przycisk.

Poniżej kod –

Python3




import> sys> from> PyQt5> import> QtCore, QtGui, QtWidgets> class> Ui_Dialog(> object> ):> > def> setupUi(> self> , Dialog):> > Dialog.setObjectName('Dialog')> > Dialog.resize(> 400> ,> 300> )> > self> .pushButton> => QtWidgets.QPushButton(Dialog)> > self> .pushButton.setGeometry(QtCore.QRect(> 150> ,> 70> ,> 93> ,> 28> ))> > self> .label> => QtWidgets.QLabel(Dialog)> > self> .label.setGeometry(QtCore.QRect(> 130> ,> 149> ,> 151> ,> 31> ))> > self> .label.setText('')> > self> .retranslateUi(Dialog)> > QtCore.QMetaObject.connectSlotsByName(Dialog)> > > # adding signal and slot> > self> .pushButton.clicked.connect(> self> .showmsg)> > def> retranslateUi(> self> , Dialog):> > _translate> => QtCore.QCoreApplication.translate> > Dialog.setWindowTitle(_translate('Dialog', 'Dialog'))> > self> .pushButton.setText(_translate('Dialog', 'Click'))> > > def> showmsg(> self> ):> > # slot> > self> .label.setText('You clicked me')> if> __name__> => => '__main__':> > app> => QtWidgets.QApplication(sys.argv)> > MainWindow> => QtWidgets.QMainWindow()> > ui> => Ui_Dialog()> > ui.setupUi(MainWindow)> > MainWindow.show()> > sys.exit(app.exec_())>