[PYTHON] Introduction à PyQt

Qt 5.14 Release!! Je suis désolé pour l'histoire qui n'a rien à voir avec le thème du coup. Tout le monde, Qt 5.14 est sorti! !! スクリーンショット 2019-12-14 22.02.19.png Quand j'ai essayé d'installer Qt pour la première fois depuis longtemps, j'ai remarqué (en fait, j'ai remarqué quand j'étais avec ermite ...). J'ai pensé à installer 5.14 immédiatement, mais cette fois le but n'était pas d'utiliser de nouvelles fonctionnalités, mais compte tenu de la compatibilité avec les outils de reliure, etc., j'ai pensé que la dernière LTS 5.12.6 était sûre. Quand j'aurai le temps, j'essaierai aussi la version 5.14.

introduction

Ceci est mon 7ème message, développeur HW ynuma. J'écrirai brièvement sur la dernière situation.

Il est tôt et ma fille a presque 3 ans. L'autre jour, j'ai pris une photo de 753. Les vacances sont une vie centrée sur la fille.

Il n'y a pas de grand changement dans la situation de travail, mais j'utilise Python pour les évaluations qui intègrent l'apprentissage automatique. J'utilise rarement Qt, mais je suis motivé pour créer des applications comme passe-temps, alors j'aimerais continuer à apprendre.

À propos de ce thème

C'est le sujet principal, mais cette fois, le thème concerne PyQt. Le savez-vous tous?

Au départ, je prévoyais de me concentrer sur l'apprentissage automatique lié au travail, mais malheureusement, je n'ai pas pu le faire cette fois car j'ai découvert que Qt lui-même n'avait pas de fonction pour prendre en charge l'apprentissage automatique (si je faisais une erreur, je ne pouvais pas le faire. Veuillez enseigner). Si vous faites du machine learning, je pense que la tendance est d'utiliser Python. Étant donné que Python a une histoire relativement longue, je pense qu'il existe de nombreuses bibliothèques telles que la création de graphiques, mais j'ai pensé que ce serait pratique si je pouvais utiliser les fonctions de Qt que j'ai quelques connaissances de Python.

Livre de référence

Par Kazuo Asano "Faisons une interface graphique avec Python" J'y reviendrai pour une bonne part. 12/12 Article posté par spiralgear Introduction de livres liés à Qt qui pourraient être complétés dans la plage d'observation personnelle Mais il est introduit. Il y a plein de schémas et d'explications, et même les débutants peuvent facilement le comprendre, donc je le recommande! !! Je pense que c'est également intéressant d'avoir beaucoup d'exemples de QtQuick.

Recommandé pour les personnes comme celle-ci

Tout d'abord, puisqu'il s'agit d'une édition d'introduction, je cible ceux qui connaissent Qt dans une certaine mesure mais n'ont jamais utilisé PyQt. Ou si vous utilisez Python et que vous souhaitez profiter des riches fonctionnalités de Qt, vous le trouverez utile.

Qu'est-ce que PyQt?

La liaison Python de Qt a été développée par Riverbank Computing au Royaume-Uni. Lier signifie lier. En bref, cela signifie quelque chose qui relie Python et Qt. Plus précisément, je pense que cela vous permet d'appeler Qt depuis Python.

History Je ne savais pas exactement quand il a été développé, mais il semble avoir existé vers 2007. PySide, qui a été développé par Nokia (maintenant The Qt Company), serait du même type, mais il semble qu'il ait été développé comme une alternative en raison de l'échec de la conclusion d'un accord de licence avec Riverbank Computing de PyQt.

Licence

PyQt est GPL. Pour référence, PySide est LGPL. Si vous donnez la priorité aux bénéfices des entreprises, vous voudrez peut-être utiliser PySide, mais PyQt semble être plus pratique. Lequel adopter en tant qu'entreprise est un endroit difficile.

Install Vous trouverez ci-dessous un bref résumé des étapes pour faire fonctionner PyQt.

  1. Installation d'Anaconda (distribution pour le langage Python)
  2. Qt Install
  3. Créez un environnement virtuel pour PyQt à partir d'Anaconda
  4. Installez PyQt dans l'environnement virtuel créé

Installation d'Anaconda (distribution pour le langage Python)

スクリーンショット 2019-12-14 18.35.05.png Anaconda semble fournir les fonctions suivantes. ・ Plusieurs environnements virtuels Python peuvent être créés ・ Plusieurs versions de Python peuvent être utilisées correctement ・ Il est possible d'utiliser correctement l'interpréteur Python pour chaque environnement. ・ Le système de gestion de colis conda peut être utilisé

Il y a beaucoup d'informations sur le Web sur les détails de la procédure, je vais donc l'omettre.

Qt Install Comme vous le savez tous, il est facile de télécharger et d'exécuter le programme d'installation en ligne de Qt à partir du site ci-dessous. https://www.qt.io/download-open-source

Création d'un environnement virtuel pour PyQt à partir d'Anaconda

  1. Démarrez le navigateur Anaconda. スクリーンショット 2019-12-14 18.35.40.png
  2. Exécutez Environnement → Créer pour créer un environnement virtuel pour PyQt. Veuillez vous référer à ce qui suit pour le nom et les packages. スクリーンショット 2019-12-14 18.36.37.png

Installez PyQt dans l'environnement virtuel créé

  1. Cliquez sur le bouton triangulaire à côté du nom de l'environnement de déguisement sur Anaconda Navigator et sélectionnez Ouvrir le terminal. スクリーンショット 2019-12-14 23.18.57.png
  2. Installez PyQt5 à partir du terminal. Je pense que l'exemple suivant sera utile.
Last login: Fri Dec 13 03:13:56 on ttys000
(base) numac:~ ynumajir$ /Users/ynumajir/.anaconda/navigator/a.tool ; exit;
(Python3_7) bash-3.2$ pip install PyQt5
Collecting PyQt5
  Downloading https://files.pythonhosted.org/packages/93/5b/2ba062584e8b407b443b7ac7b6687e157d22b0f875cfd1dbe5baf82f6177/PyQt5-5.13.2-5.13.2-cp35.cp36.cp37.cp38-abi3-macosx_10_6_intel.whl (39.8MB)
     |████████████████████████████████| 39.8MB 23.1MB/s 
Collecting PyQt5_sip<13,>=4.19.19
  Downloading https://files.pythonhosted.org/packages/ca/77/ac0e8908be37523f0d93b8002641d11cfbc231c3e9dbaa4835f8073b397d/PyQt5_sip-12.7.0-cp37-cp37m-macosx_10_9_x86_64.whl (62kB)
     |████████████████████████████████| 71kB 8.5MB/s 
Installing collected packages: PyQt5-sip, PyQt5
Successfully installed PyQt5-5.13.2 PyQt5-sip-12.7.0
(Python3_7) bash-3.2$ pip list
Package    Version            
---------- -------------------
certifi    2019.11.28         
pip        19.3.1             
PyQt5      5.13.2             
PyQt5-sip  12.7.0             
setuptools 42.0.2.post20191201
wheel      0.33.6             
(Python3_7) bash-3.2$ 

Exécuter un exemple de programme

Vous trouverez ci-dessous le code python qui affiche une simple MainWindow.

QMainWindow.py



# - * - coding: utf8 - * -
  
import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel

class MainWindow(QMainWindow):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt test(QMainWindow)'
        self.width = 400
        self.height = 200
        self.setWindowTitle(self.title)
        self.setGeometry(0, 0, self.width, self.height)
        label = QLabel('This is PyQt test.', self)
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec_())

Voici les résultats de l'exécution. $ python QMainWindow.py スクリーンショット 2019-12-15 0.37.27.png Vous pouvez maintenant utiliser la bibliothèque Qt de Python.

À la fin

Cette fois, j'ai résumé les étapes jusqu'au point où vous pouvez faire un simple appel à Qt en utilisant PyQt. Étant donné que l'environnement Anaconda et python a été initialement configuré sur le PC utilisé, il était relativement facile de démarrer. En conséquence, je pense qu'il est devenu possible d'afficher les résultats de l'apprentissage automatique sur l'interface graphique Qt. La prochaine fois, j'aimerais savoir si PyQt peut créer un graphique 3D aussi facilement que possible.

Recommended Posts

Introduction à PyQt
Introduction à PyQt4 Partie 1
Introduction à MQTT (Introduction)
Introduction à Scrapy (1)
Introduction à Scrapy (3)
Premiers pas avec Supervisor
Introduction à Scrapy (2)
[Linux] Introduction à Linux
Introduction à Scrapy (4)
Introduction à discord.py (2)
Introduction à Lightning Pytorch
Premiers pas avec le Web Scraping
Introduction à EV3 / MicroPython
Introduction au langage Python
Introduction à la reconnaissance d'image TensorFlow
Introduction à OpenCV (python) - (2)
Introduction à l'injection de dépendances
Introduction à Private Chainer
Introduction à l'apprentissage automatique
AOJ Introduction à la programmation Sujet 1, Sujet 2, Sujet 3, Sujet 4
Introduction au module de papier électronique
Introduction à l'algorithme de recherche de dictionnaire
Introduction à la méthode Monte Carlo
[Mémorandum d'apprentissage] Introduction à vim
Introduction à PyTorch (1) Différenciation automatique
opencv-python Introduction au traitement d'image
Introduction à Python Django (2) Win
Introduction à l'écriture de Cython [Notes]
Introduction à Private TensorFlow
Une introduction à l'apprentissage automatique
[Introduction à cx_Oracle] Présentation de cx_Oracle
Une super introduction à Linux
introduction
AOJ Introduction à la programmation Sujet n ° 7, Sujet n ° 8
Introduction à la détection des anomalies 1 principes de base
Introduction à RDB avec sqlalchemy Ⅰ
[Introduction au système] Retracement de Fibonacci ♬
Introduction à l'optimisation non linéaire (I)
Introduction à la communication série [Python]
AOJ Introduction à la programmation Sujet n ° 5, Sujet n ° 6
Introduction au Deep Learning ~ Règles d'apprentissage ~
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Une introduction à la programmation Python
[Introduction à cx_Oracle] (8e) version de cx_Oracle 8.0
Introduction à discord.py (3) Utilisation de la voix
Introduction à l'optimisation bayésienne
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Super introduction à l'apprentissage automatique
Introduction à Ansible Part «Inventaire»
Série: Introduction à cx_Oracle Contents
[Introduction] Comment utiliser open3d
Introduction à Python pour, pendant
Introduction au Deep Learning ~ Rétropropagation ~
Introduction à Ansible Part ④'Variable '
Introduction à la commande vi (Remarque)