logo

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

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

pip install pyqt5>

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



>>>імпорт PyQt5>>

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

отримати довжину масиву в c
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




java є екземпляром



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

>

java синхронізація

>