Bonjour,
J'utilise PyQT pour designer mes IHM.
Je développe des soft avec affichage en direct de courbes. Pour cela j'utilise la bibliothéque Matplotlib et sa partie QT pour l'insérer directement dans mon interface.
Malheureusement, l'icone des boutons en bas de mon graphique ne s'affiche pas, hormis celui "Configure subplot"
Tous les autres boutons sont présent, mais l'icone ne s'affiche pas.
Est ce normal? Avez vous déja eu ca?
Voici ma classe que j'utilise pour afficher mes graphiques dans mes IHM.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
import sys, os, PyQt4
import PyQt4.QtCore
import PyQt4.QtGui
import matplotlib
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavBar
from matplotlib.figure import Figure
import numpy
import sys
import glob
import os
import scipy
from scipy import optimize
import string
from PyQt4 import QtCore, QtGui
# Main window
class CFormGraphique(QtGui.QMainWindow):
    def __init__(self, parent=None, Titre = None, PosGraph = None):
        self.parent = parent
        self.series_list_model = QtGui.QStandardItemModel()
        if(PosGraph == None):
            self.create_main_frame(0,0,10,10)
        else:
            self.create_main_frame(PosGraph[0], PosGraph[1], PosGraph[2], PosGraph[3])
        self.coefInit = scipy.zeros(6)
        self.coef = scipy.zeros(6)
        self.Titre = Titre
 
    def on_show(self, dataX = None, dataY = None):
        self.axes.clear()
        self.axes.grid(True)
        has_series = False
        self.axes.plot(dataX, dataY, "r-")
        if(self.Titre <> None):
            self.axes.set_title(self.Titre)
        self.canvas.draw()
 
    def create_main_frame(self, PosX, PosY, Width, Height):
        self.main_frame = QtGui.QWidget()
        plot_frame = QtGui.QWidget()
        self.dpi = 80
        self.fig = Figure((2.0, 2.0), dpi=self.dpi)
        self.canvas = FigureCanvas(self.fig)
        self.canvas.setParent(self.parent)#(self.main_frame)
        self.axes = self.fig.add_subplot(111)
        self.mpl_toolbar = NavBar(self.canvas, self.parent) #self.main_frame)
        left_vbox = QtGui.QVBoxLayout()
        left_vbox.addWidget(self.canvas)
        left_vbox.addWidget(self.mpl_toolbar)
        hbox = QtGui.QVBoxLayout()
        hbox.addLayout(left_vbox)
        self.FRAME_Status = QtGui.QFrame(self.parent)
        self.FRAME_Status.setGeometry(QtCore.QRect(PosX, PosY, Width, Height))
        self.FRAME_Status.setFrameShape(QtGui.QFrame.StyledPanel)
        self.FRAME_Status.setFrameShadow(QtGui.QFrame.Raised)
        self.FRAME_Status.setObjectName("FRAME_Status")
 
        self.FRAME_Status.setLayout(hbox)
 
    def add_actions(self, target, actions):
        for action in actions:
            if action is None:
                target.addSeparator()
            else:
                target.addAction(action)
 
    def create_action(  self, text, slot=None, shortcut=None,
                        icon=None, tip=None, checkable=False,
                        signal="triggered()"):
        action = QAction(text, self)
        if icon is not None:
            action.setIcon(QIcon(":/%s.png" % icon))
        if shortcut is not None:
            action.setShortcut(shortcut)
        if tip is not None:
            action.setToolTip(tip)
            action.setStatusTip(tip)
        if slot is not None:
            self.connect(action, SIGNAL(signal), slot)
        if checkable:
            action.setCheckable(True)
        return action
Merci d'avance pour vos conseils
@+
Julien