Vous lisez
Mari : Ma première interface PyQt

Objectif

Créer une nouvelle Palette personnalisée dans l’interface de Mari.

En théorie

Nous allons créer une Class « myFirstUI«  composée de 2 fonctions:

  • __init__ : Initialisation et lancement de la création de l’UI
  • createUI : Création de l’UI

En pratique

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import mari
import PythonQt.QtGui as gui    # Import PYQt UI
import PythonQt.QtCore as core    # Import PyQt Core

class myFirstUI(gui.QWidget):

def __init__(self):
# Si mon UI existe deja, je la supprime
try:
mari.palettes.remove("My First UI")
except ValueError:
pass
# Creation de la nouvelle Palette
pan = mari.palettes.create("My First UI", "")
# Creation du contenu via la fonction de creation ci-dessous
fenetre = self.createUI()
# Assignation
pan.setBodyWidget(fenetre)
# Affichage
pan.show()

def createUI(self):
# Init du tableau de boutons
buttonList  = ["Button 1", "Button 2", "Button 3"]
# Creation du layout
gui.QWidget.__init__(self)
layout = gui.QVBoxLayout(self)
# Pour chaque element du tableau, on cree un bouton
for buttonName in buttonList:
button = gui.QPushButton(buttonName, self)
layout.addWidget(button)
# Assignation
self.setLayout(layout)
# On retourne le contenu
return self

# Executer la Class
myFirstUI()

Et voici le fabuleux résultat !

the-foundry-mari-interface-tuto-pyqt

Fou ! N’est-ce pas ?

Maintenant ce qui serait vraiment intéressant c’est d’ajouter des fonctions à ces boutons.

Qu'avez-vous pensé de cet article ?
J'aime
0%
Merci
0%
Pratique
0%
Incomplet
0%
Rien de neuf
0%
A propos de l'auteur
Olivier Schmitt
Photographe professionnel, originaire d'Alsace (France), ancien Directeur Technique sur les films d'animation "Minions", "Moi, Moche et Méchant" et "Le Lorax".
Commentaires
Laisser une réponse

Laisser une réponse