[PYTHON] Comment utiliser Qt Designer

J'ai utilisé Qt Designer pour créer une fenêtre dans Potopeta. Notez ce que vous avez recherché à ce moment-là.

Comment définir la barre d'outils

Vous pouvez ajouter une barre d'outils avec Ajouter une barre d'outils dans le menu contextuel de la fenêtre. Au début, je pensais que je placerais le bouton d'outil là-bas en le faisant glisser et en le déposant, mais c'était différent.

Pour placer un bouton sur la barre d'outils, créez une action pour ce bouton. 2016-07-10_212630.png Vous pouvez placer des boutons en faisant glisser et en déposant cette action sur la barre d'outils. 2016-07-10_212704.png Les actions peuvent être créées en appuyant sur le bouton Nouveau dans l'éditeur d'actions. Si vous souhaitez que le bouton affiche une image, définissez l'icône sur une image de la ressource. 2016-07-10_201334.png Si vous souhaitez définir une image sur le bouton, enregistrez l'image en tant que ressource et définissez-la.

Gestion des événements pour les boutons de la barre d'outils

Si vous souhaitez que PySide gère l'événement lorsqu'un bouton de la barre d'outils est enfoncé, attribuez une fonction à l'événement d'action comme suit:

Par exemple, j'ai créé une action appelée actionMenu dans l'éditeur d'actions et l'ai définie dans la barre d'outils. Si vous souhaitez appeler une fonction appelée onToolbarMenu lorsque vous appuyez sur ce bouton, définissez-la dans PySide comme suit.

 #Lire le fichier ui, créer et afficher un objet ui
 loader = QtUiTools.QUiLoader()
 self.ui = loader.load("XXX.ui")
 self.ui.show()
 #Définir le gestionnaire d'événements pour l'action
 self.ui.actionMenu.triggered.connect(self.onToolbarMenu)

Enregistrer l'image dans la ressource

Utilisez l'éditeur de ressources pour enregistrer l'image. Affichez la boîte de dialogue avec le bouton Modifier la ressource dans l'éditeur de ressources. Créez un nouveau fichier de ressources et ajoutez un préfixe à son qrc. Sélectionnez le préfixe, puis appuyez sur le bouton Ajouter un fichier pour sélectionner l'image. L'image est maintenant enregistrée comme ressource dans le fichier qrc et peut être sélectionnée dans la sélection d'image du widget.

Si centralWidget ne prend pas en charge le redimensionnement

Si l'icône centralWidget placée sous MainWindow dans l'inspecteur d'objets ressemble à ceci, la disposition est désactivée. 2016-07-10_200313.png Le redimensionnement de la fenêtre dans cet état ne modifie pas le centralWidget. Dans cet état, même si vous augmentez la taille horizontalement, la taille du widget à l'intérieur ne change pas. 2016-07-10_200616.png

Dans ce cas, vous pouvez redimensionner en sélectionnant le type de mise en page dans [Mise en page] dans le menu contextuel de MainWindow. Cette fois, j'ai choisi [Aligner verticalement] pour utiliser QVBoxLayout pour la mise en page directement en dessous. Si vous augmentez la taille horizontalement, le widget à l'intérieur augmentera également horizontalement. 2016-07-10_200640.png

Comment définir l'autorisation d'étirement pour chaque élément dans QVBoxLayout / QHBoxLayout

Ajoutez des widgets en tant qu'éléments aux mises en page qui s'alignent horizontalement et verticalement. Si vous voulez qu'une partie seulement se dilate et se contracte en fonction de la taille, Définissez la propriété layoutStretch sur une chaîne de 0 ou 1, séparée par des virgules, telle que 1,0,0,1,0,1,1. 2016-07-10_202812.png Dans cet exemple, seuls les éléments 1, 4, 6 et 7 avec 1 spécifié seront étirés. Les deuxième, troisième et cinquième éléments avec 0 spécifié ne s'étirent pas. Avant d'élargir la largeur 2016-07-10_202408.png Après avoir élargi la largeur 2016-07-10_202728.png

Paramètres de l'infobulle QPushButton

Ce paramètre permet d'afficher l'explication lorsque le pointeur de la souris survole le bouton. 2016-07-10_201211.png Définissez la propriété Tooltip sur une chaîne. 2016-07-10_201128.png

Utiliser les fichiers ui de PySide

Vous pouvez utiliser QtUiTools de PySide pour créer des fichiers .ui créés dans Qt Designer sous forme de fenêtres.

 from PySide import QtUiTools
 # XXX_rc.py est XXX.Une version convertie de qrc. Requis lors de la lecture de l'interface utilisateur avec qrc.
 import XXX_rc.py
 #Lire le fichier ui et créer un objet ui
 loader = QtUiTools.QUiLoader()
 ui = loader.load("XXX.ui")
 ui.show()

Convertir les ressources .qrc en .py pour les utiliser

Les images gérées par Qt Designer sont enregistrées dans qrc. Le fichier .qrc n'est pas disponible tel quel dans PySide. Convertissez en un fichier .py et importez. QUiLoader utilise ce module .py importé lors du chargement de fichiers .ui. Le nom de fichier .py doit être le nom de fichier .qrc plus _rc.

Pour convertir XXX.qrc en fichier .py pour python3, exécutez la commande suivante:

pyside-rcc.exe -py3 XXX.qrc > XXX_rc.py

pyside-rcc.exe se trouve directement sous le dossier d'installation de Python Je pense que c'est dans Lib \ site-packages \ PySide.

Cela créera XXX_rc.py.

Configurez facilement votre conception avec la feuille de style.

QWidget a une propriété appelée styleSheet. Par conséquent, vous pouvez facilement modifier l'apparence en écrivant quelque chose comme css. Dans la boîte de dialogue [Modifier la feuille de style], vous pouvez utiliser l'interface graphique pour définir des paramètres tels que la modification de la couleur d'arrière-plan.

Définissez la feuille de style. Vous pouvez afficher la boîte de dialogue avec le bouton [...]. 2016-07-10_221959.png

Barre d'outils lorsqu'aucune feuille de style n'est spécifiée 2016-07-10_222058.png

Barre d'outils lorsque la feuille de style est définie (modifier la couleur d'arrière-plan) 2016-07-10_222025.png

Différence entre QTreeView et QTreeWidget

L'implémentation de Model-View est différente.

QTreeView ** n'a pas de modèle intégré **, il convient donc lorsque vous souhaitez utiliser l'interface graphique en utilisant votre propre modèle. Vous pouvez ressentir la signification de la vue uniquement à partir du nom.

QTreeWidget a un modèle ** intégré unique à la bibliothèque Qt, il convient donc à ceux qui souhaitent utiliser l'interface graphique de l'arborescence facilement. Pour le dire autrement, vous ne pouvez pas jouer avec le modèle comme vous le souhaitez.

QTreeWidget est une classe dérivée de QTreeView et on peut dire que cela évite à l'utilisateur d'avoir à créer un modèle.

Recommended Posts

Comment utiliser Qt Designer
Comment utiliser xml.etree.ElementTree
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment utiliser Pandas Rolling
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py
Python: comment utiliser pydub
[Python] Comment utiliser checkio
[Aller] Comment utiliser "... (3 périodes)"
Comment faire fonctionner GeoIp2 de Django
[Python] Comment utiliser input ()
Comment utiliser le décorateur
[Introduction] Comment utiliser open3d
Comment utiliser Python lambda
Comment utiliser Jupyter Notebook
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser Google Colaboratory
Comment utiliser les octets Python
Comment utiliser cron (mémo personnel)
Python: comment utiliser async avec