Mon problème est le suivant : j'ai enfin compris comment récupérer les évènements liés à la souris sur deux GraphicsView différents, mais je n'arrive pas à faire appeler la méthode chgt() qui elle est définie dans la QMainWindow. Quelqu'un sait-il comment faire ?

Par avance merci.

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
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
 
class GraphicsView_1(QtGui.QGraphicsView):
    def __init__(self, parent=None):
        super(GraphicsView_1, self).__init__(parent)
 
    def mouseMoveEvent(self, mouseEvent):
        pt = mouseEvent.pos()
###################################
###################################
#	C'est ici que je voudrais appeler la fonction chgt.
###################################
###################################
 
class GraphicsView_2(QtGui.QGraphicsView):
    def __init__(self, parent=None):
        super(GraphicsView_2, self).__init__(parent)
 
    def wheelEvent(self, event):
        print 'Au dessus du graphique 2 : Roulette de la souris activé'
 
    def mousePressEvent(self, mouseEvent):
        if mouseEvent.button() == QtCore.Qt.LeftButton :
            pt = mouseEvent.pos()
            print 'Sur le graphique 2 : Clic Gauche avec la souris - Position relative (x;y) = (' + str(pt.x()) + ';' + str(pt.y()) + ')'
        elif mouseEvent.button() == QtCore.Qt.RightButton :
            print 'Sur le graphique 2 : Clic Droit avec la souris - Position globale (x;y) = (' + str(mouseEvent.globalX()) + ';' + str(mouseEvent.globalY()) + ')'
 
class Ui_window_TestSouris_Plus(object):
    def setupUi(self, window_TestSouris_Plus):
        window_TestSouris_Plus.setObjectName("window_TestSouris_Plus")
        window_TestSouris_Plus.resize(697,538)
        window_TestSouris_Plus.setMinimumSize(QtCore.QSize(697,538))
        window_TestSouris_Plus.setMaximumSize(QtCore.QSize(697,538))
        self.centralwidget = QtGui.QWidget(window_TestSouris_Plus)
        self.centralwidget.setGeometry(QtCore.QRect(0,21,697,498))
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.graphicsView_1 = GraphicsView_1()
        self.graphicsView_1.setObjectName("graphicsView_1")
        self.horizontalLayout.addWidget(self.graphicsView_1)
        spacerItem = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.graphicsView_2 = GraphicsView_2()
        self.graphicsView_2.setObjectName("graphicsView_2")
        self.horizontalLayout.addWidget(self.graphicsView_2)
        window_TestSouris_Plus.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(window_TestSouris_Plus)
        self.menubar.setGeometry(QtCore.QRect(0,0,697,21))
        self.menubar.setObjectName("menubar")
        window_TestSouris_Plus.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(window_TestSouris_Plus)
        self.statusbar.setGeometry(QtCore.QRect(0,519,697,19))
        self.statusbar.setObjectName("statusbar")
        window_TestSouris_Plus.setStatusBar(self.statusbar)
 
        self.retranslateUi(window_TestSouris_Plus)
        QtCore.QMetaObject.connectSlotsByName(window_TestSouris_Plus)
 
    def retranslateUi(self, window_TestSouris_Plus):
        window_TestSouris_Plus.setWindowTitle(QtGui.QApplication.translate("window_TestSouris_Plus", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
 
    def chgt(self):
        print 'ok ok ok ok'
 
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    window_TestSouris_Plus = QtGui.QMainWindow()
    ui = Ui_window_TestSouris_Plus()
    ui.setupUi(window_TestSouris_Plus)
    window_TestSouris_Plus.show()
    sys.exit(app.exec_())