J'ai du Qcombobox incorporé dans un QTableView. Pour les faire montrer par défaut, j'ai rendu ces index "éditeur persistant". Mais maintenant, chaque fois que je fais un défilement de la souris sur les haut de dessus, ils brisent ma sélection de table actuelle. P>
donc essentiellement comment puis-je désactiver le défilement de la souris de qcombobox? p>
3 Réponses :
Vous devriez pouvoir désactiver le défilement de la molette de la souris en installant EventFilter < / a> sur votre Qcombobox et ignorer les événements générés par la molette de la souris ou la sous-classe Qcombobox et redéfinir Wheelevent ne rien faire. P>
J'ai également changé la politique de mise au point de ComboBox en cliquant. Cela a aidé aussi. Merci!
Mais le Qcombobox est toujours concentré si je roue dessus. Pourquoi? Comment l'empêcher? Je veux ne pas désactiver la mise au point mais ne vous concentrez que sur la roue.
La même chose peut vous arriver dans un qspinbox code> ou
qdoubleespinbox code>. Sur qspinbox à l'intérieur d'une Qscrollarea: Comment prévenir la boîte d'essai de voler la mise au point lors du défilement? Vous pouvez trouver une solution vraiment bonne et bien expliquée au problème des extraits de code. p>
Comme j'ai trouvé cette question, lorsque j'ai essayé de comprendre la solution à (fondamentalement) le même problème: ici ma classe Qcombobox redéfinie: p> qui est appelable de cette manière: p> il est Fondamentalement Réponse de EMKEY08 dans le Link Ralph Tandetzky a souligné , mais cette fois en python. p> p>
Cela a fonctionné pour moi avec un qspinbox code> (remplacer
qtgui.qcombobox code> avec
qwidgets.qspinbox code>), merci!
Pour moi, un moyen encore meilleur est d'appeler le Ignorer () code>. Cela passera l'événement au parent afin de ne pas avoir à désigner explicitement qui reçoit le défilement. `` `` def wheelevent (auto, événement): si Self.Asfocus (): retourner qtgui.qcombobox.wheelevent (auto, événement) Sinon: Event.ignore ()