QTableWidget/QMouseHover et signal
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:
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_() |