10
votes

QT Comment désactiver la défilation de la souris de Qcombobox?

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.

donc essentiellement comment puis-je désactiver le défilement de la souris de qcombobox?


0 commentaires

3 Réponses :


3
votes

2 commentaires

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.



5
votes

La même chose peut vous arriver dans un qspinbox ou qdoubleespinbox . 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.


0 commentaires

10
votes

Comme j'ai trouvé cette question, lorsque j'ai essayé de comprendre la solution à (fondamentalement) le même problème: dans mon cas, je voulais avoir un Qcombobox dans une Qscrollarea à Pyside (Python QT Lib).

ici ma classe Qcombobox redéfinie: xxx

qui est appelable de cette manière: xxx

il est Fondamentalement Réponse de EMKEY08 dans le Link Ralph Tandetzky a souligné , mais cette fois en python.


2 commentaires

Cela a fonctionné pour moi avec un qspinbox (remplacer qtgui.qcombobox avec qwidgets.qspinbox ), merci!


Pour moi, un moyen encore meilleur est d'appeler le Ignorer () . 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 ()