Python | Знайомство з PyQt5

Python | Знайомство з PyQt5

Python пропонує так багато варіантів для розробки додатків з графічним інтерфейсом користувача, і PyQt5 є одним із них. PyQt5 — це кросплатформний інструментарій GUI, набір прив’язок python для Qt v5. Завдяки інструментам і простоті цієї бібліотеки можна легко розробити інтерактивну настільну програму. Додаток із графічним інтерфейсом складається з інтерфейсу та серверу. PyQt5 надав інструмент під назвою «QtDesigner» для проектування інтерфейсу за допомогою методу перетягування, щоб розробка стала швидшою та можна було приділяти більше часу роботі з бек-ендом. Установка: Спочатку нам потрібно встановити бібліотеку PyQt5. Для цього введіть таку команду в терміналі або командному рядку:

pip install pyqt5 

У разі успішного встановлення можна перевірити це, запустивши код:

>>>імпорт PyQt5> 

PyQt5 надає багато інструментів, і QtDesigner є одним із них. Для цього виконайте цю команду:

pip install PyQt5-tools 

Створіть свій перший додаток –

Це проста програма з однією кнопкою у вікні. Після натискання цієї кнопки з’явиться повідомлення Ви натиснули мене. Давайте розпочнемо .

  • Перш за все, нам потрібно знайти QtDesigner для створення передньої частини. – QtDesigner присутній у «site-packages/pyqt5_tools» – Щоб знайти місце розташування site-packages, напишіть наступний код python за допомогою будь-якого редактора на ваш вибір, а потім запустіть:
>>> імпорт сайту>>> site.getsitepackages() 
  • – Запустіть програму під назвою «дизайнер».
  • Відкриється вікно, як показано на малюнку: виберіть опцію «Діалог без кнопки» та натисніть «Створити»
  • У лівій частині дизайнера будуть різні віджети, які можна перетягувати в наше вікно відповідно до наших вимог.
  • Знайдіть і перетягніть «Кнопку» та «Мітку».
  • Змініть текст усередині віджетів, клацнувши його правою кнопкою миші та вибравши «Змінити звичайний текст». Не заповнюйте текст етикетки.
  • Ми створили наш інтерфейсний макет, просто збережіть його у бажаному місці. Пам’ятайте, що цей файл матиме розширення .ui.
  • Нам потрібно перетворити файл .ui у файл .py, щоб отримати форму Python для віджетів і прикріпити до них необхідні прослуховувачі подій.

Перетворення файлу .ui у файл .py:

  • Для цього нам потрібно перейти до каталогу sitepackages у терміналі або командному рядку та виконати команду, як показано нижче. Отримання розташування пакетів сайтів згадувалося раніше.

>>> cd C:Users……ProgramsPythonPython36-32libsite-packages [Розташування пакетів сайту]>>> pyuic5 C:Users……FILENAME .ui[Точне розташування файлу .ui] -o C:Users…….FILENAME.py [Місце розташування файлу .py]

  • Нарешті ми додамо сигнали та слот у код Python, щоб зробити його повністю функціональним.
widget.signal.connect(slot) 
  • А сигнал створюється віджетами після певної події, наприклад клацання, подвійне клацання тощо. слот це будь-яка викликана функція, яка виконає певну дію після виникнення події.
  • Запустіть програму та натисніть кнопку.

Нижче наведено код –

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_())>