Bonjour à tous,

Il y aurait il un utilisateur de windows 7 qui pourrait m'expliquer pourquoi mon code fonctionne sur linux et non sur windows. Dans mon application j'ai besoin de detecter lorsque la souris passe au-dessus d'une cellule et donc mon code ci-dessous doit renvoyer l'event.type() = 129 .... D'ailleurs, de base, sur linux les cellules changent légèrement de couleur pour montrer qu'elles sont selectionnées. Cela ne se passe pas sur la machine windows que j'utilise. Les deux machines ont bien les mêmes version de python 2.7 et Pyqt4 11.3.

Merci d'avance pour votre aide ... Ce type de bug est assez démotivant ...

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
from PyQt4.QtGui       import QTableWidget
from PyQt4             import QtCore
from PyQt4.QtGui       import QApplication
import sys
 
class TableWidget(QTableWidget):
 
      '''
      '''
 
def __init__ (self):
 
    '''       
    '''            
 
    super(TableWidget, self).__init__()
 
    nbcol = 4
    nbrow = 4
 
    #########################################
 
    self.viewport().installEventFilter(self)
 
    #########################################
 
    self.setColumnCount(4)
    self.setRowCount(4)
    self.horizontalHeader().setStretchLastSection(True)
    self.verticalHeader()  .setStretchLastSection(True)
 
def eventFilter(self, widget, event):
 
    if widget is self.viewport():
 
        if event.type() == QtCore.QEvent.HoverMove:  
            print event.type()
            self.index      = self.indexAt(event.pos())
            self.cellrow    = self.index.row()
            self.cellcolumn = self.index.column()
 
    return QTableWidget.eventFilter(self, widget, event)
 
 
if __name__ == "__main__":
   app = QApplication(sys.argv)
   window = TableWidget()
   window.show()
   app.exec_()