Bonsoir,
j'ai 2 QTableWidget avec des event Filtrer, je souhaiterai ajouter le drag and drop entre les 2.
je voudrais le faire en passant par l'eventfiltrer.
Mais je n'ai que "DragEnter" qui s'active que je rentre ou sorte d'un des 2 widgets...
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 self.ui.web_table.installEventFilter(self) self.ui.local_table.installEventFilter(self) ... def eventFilter(self, watched, event): if watched.objectName() in ["local_table", "web_table"]: if event.type() == QEvent.DragLeave: print("DragLeave", watched.objectName()) elif event.type() == QEvent.DragEnter: print("DragEnter", watched.objectName()) elif event.type() == QEvent.DragMove: print("DragMove", watched.objectName()) elif event.type() == QEvent.Drop: print("Drop", watched.objectName())
Je ne comprends pas pourquoi...
Lorsque je rentre dans "local_table" et ressorts :
pourquoi n'est-ce pas Enter puis Leave ?!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DragEnter local_table DragEnter local_table
Je veux bien quelques conseils.
Si je passe par :
cela fonctionne mais j'aimerai vraiment passer par l'eventfiltrer car je surveille déjà les resizes et les touches de clavier...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class LocalTable(QTableWidget): def dragEnterEvent(self, event): print("dragEnterEvent") event.accept() def dropEvent(self, event): print("dropEvent") event.accept() self.ui.local_table.__class__ = LocalTable
Merci à vous.
Partager