×

[section label= »Objectif » anchor= »objectif »]

Objectif

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

[section label= »En théorie » anchor= »theorie »]

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

[section label= »En pratique » anchor= »pratique »]

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.

Partager sur:

Photographe professionnel, originaire d'Alsace (France), ancien Directeur Technique sur les films d'animation "Minions", "Moi, Moche et Méchant" et "Le Lorax".

Laisser un commentaire