Les deux révisions précédentes
Révision précédente
|
|
nouveaux_widgets [2016/06/04 08:40] tyrtamos |
nouveaux_widgets [2016/06/04 08:49] tyrtamos |
| |
Dans les variables d'environnement de l'OS, on va passer: | Dans les variables d'environnement de l'OS, on va passer: |
| |
* le chemin du répertoire "plugins" dans la variable "PYQTDESIGNERPATH" | * le chemin du répertoire "plugins" dans la variable "PYQTDESIGNERPATH" |
* le chemin du répertoire "widget" dans la variable "PYTHONPATH" | * le chemin du répertoire "widget" dans la variable "PYTHONPATH" |
| |
En conséquence, on peut placer ces deux répertoires n'importe où, et "coder en dur" ces 2 chemins dans le code de lancement du Designer, mais c'est un peu dommage. On va donc simplifier ici sur ce point: fixer l'emplacement relatif entre programme et données pour permettre au code de lancement du Designer de trouver automatiquement par calcul les répertoires des widgets. Voilà la structure choisie ici sur le disque: | En conséquence, on peut placer ces deux répertoires n'importe où, et "coder en dur" ces 2 chemins dans le code de lancement du Designer, mais c'est un peu dommage. On va donc simplifier ici sur ce point: fixer l'emplacement relatif entre programme et données pour permettre au code de lancement du Designer de trouver automatiquement par calcul les répertoires des widgets. Voilà la structure choisie ici sur le disque: |
| |
</code> | </code> |
| |
Quand vous lancez ce code Python, le Designer vient à l'écran, et vous trouvez dans la colonne de gauche le widget personnalisé "MonLineEditWidget" dans la liste des widgets disponibles, et dans la catégorie définie ("Mes widgets perso"). Et vous pouvez alors l'utiliser comme n'importe quel autre widget. Dans cet exemple, vous voyez dans les propriétés de la colonne de droite que Designer a reconnu le type QLineEdit, et a initialisé les propriétés définies dans le fichier "plugin" (toolTip, whatsThis, styleSheet). | Quand vous lancez ce code Python, le Designer vient à l'écran, et vous trouvez dans la colonne de gauche le widget personnalisé "MonLineEditWidget" dans la liste des widgets disponibles, et dans la catégorie définie ("Mes widgets perso"). Vous pouvez alors l'utiliser comme n'importe quel autre widget. Dans cet exemple, vous voyez dans les propriétés de la colonne de droite que Designer a reconnu le type QLineEdit, et a initialisé les propriétés définies dans le fichier "plugin" (toolTip, whatsThis, styleSheet). |
| |
A noter que ce script qui appelle le Designer nécessite de pouvoir retrouver automatiquement les adresses à l'intérieur de PyQt5. Or, sous Windows, ces adresses sont données par un fichier **qt.conf**, situé à l'installation dans le répertoire de python.exe, et dont **//les données sont fausses!//** Il faut donc le corriger comme suit: | A noter que ce script qui appelle le Designer nécessite de pouvoir retrouver automatiquement les adresses à l'intérieur de PyQt5. Or, sous Windows, ces adresses sont données par un fichier **qt.conf**, situé à l'installation dans le répertoire de python.exe, et dont **//les données sont fausses!//** Il faut donc le corriger comme suit: |
# nom (str) du fichier du widget sans extension | # nom (str) du fichier du widget sans extension |
FICHIERWIDGET = "geolocationwidget" | FICHIERWIDGET = "geolocationwidget" |
# nom (str) de la classe du widget importe | # nom (str) de la classe du widget pour importer |
NOMCLASSEWIDGET = "GeoLocationWidget" | NOMCLASSEWIDGET = "GeoLocationWidget" |
# nom (str) de l'instance cree dans Designer | # nom (str) de l'instance dans Designer |
NOMWIDGET = "geoLocationWidget" | NOMWIDGET = "geoLocationWidget" |
# groupe (str) de widgets pour Designer | # groupe (str) de widgets pour affichage dans Designer |
GROUPEWIDGET = "Mes widgets perso" | GROUPEWIDGET = "Mes widgets perso" |
# texte (str) pour le toolTip dans Designer | # texte (str) pour le toolTip dans Designer |
# texte (str) pour le whatsThis dans Designer | # texte (str) pour le whatsThis dans Designer |
TEXTEWHATSTHIS = "Coordonnées GPS" | TEXTEWHATSTHIS = "Coordonnées GPS" |
# icone (rien ou un QPixmap) pour presenter le widget dans Designer | # icone (rien ou un fichier image ou un QPixmap) pour afficher dans Designer |
ICONEWIDGET = QtGui.QIcon() | ICONEWIDGET = QtGui.QIcon() # sans image, l'icone est celui de Qt |
... | ... |
... | ... |